xuningda
2021-09-10 11:05
采纳率: 81.8%
浏览 31

sql里用NVL函数后,报了个group by的错误,我是要再查询一遍吗

img


我表里有个字段IF_GY,代表的意义就是0是false 1是true,然后我要用NVL函数给它合并加起来,最后成为一个新的count字段,我select里是加了,它报错了个group by 我是要下面再聚合下吗

  • 收藏

4条回答 默认 最新

  • 唯一的小彬哥 2021-09-10 13:19
    已采纳

    你现在是聚合出问题了,当你进行聚合时,你的结果中只能包含聚合的函数,如果你需要有其他的字段则必须要进行 GROUP BY ,而且一般情况下GROUP BY会和聚合表达式一起使用,这样才可以根据一个或多个列对结果集进行分组聚合。
    下面是我整理GROUP BY 和HAVING的一些限制。
    GROUP BY 的字段可以是表中的任何列,这些列并不需要出现在SELECT的列表中,但SELECT的查询列必须是Group By的列或者是聚合函数 ,另外在分组中出于分组的目的NULL被认为是等价的
    如果要对分组结果进行过滤可以用HAVING子句,这是一个布尔表达式,它可以是分组列、聚合表达式的一部分列和子查询的一部分列

    已采纳该答案
    1 打赏 评论
  • 诺羽@ 2021-09-10 11:10

    mysql里没有nvl函数

    1 打赏 评论
  • IT_心如止水 2021-09-10 11:16

    oracle中当查询的结果中有聚合指标cout、sum等时,必须将非指标字段放在group by中

    1 打赏 评论
  • 於黾 2021-09-10 14:12

    你的错误不在于NVL,而在于count
    你使用了count,则后面必须使用group by语句

    1 打赏 评论

相关推荐 更多相似问题