那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过 $1,500。在这个情况下,我们不能使用 WHERE 的指令。那要怎么办呢?很幸运地,SQL 有提供一个 HAVING 的指令,而我们就可以用这个指令来达到这个目标。 HAVING 子句通常是在一个 SQL 句子的最后。一个含有 HAVING 子句的 SQL 并不一定要包含 GROUP BY 子句。HAVING 的语法如下:
SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1" HAVING (函数条件)
请读者注意: GROUP BY 子句并不是一定需要的。这是公司给的资料。我试过了会报错,不用group by 会报错 ORA-00937,而且查的字段除了聚合函数不用,其它必须进行group by 这是为什么?
SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1" HAVING (函数条件)
请读者注意: GROUP BY 子句并不是一定需要的。这是公司给的资料。我试过了会报错,不用group by 会报错 ORA-00937,而且查的字段除了聚合函数不用,其它必须进行group by 这是为什么?
group by 可以不使用having(没有条件来约束它)
having是对分组统计的结果再次进行筛选的子句,没分组怎么筛选
只要你的查询结果中全部是用聚合的函数处理了就不需要group by
select sum(col),max(col2) from tb having max(col2)>某个值 加个having只是从分组的条件筛选出自己需要的结果SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1" HAVING (函数条件)
像这样就是必须的加group by "栏位1"而且having 是跟group by配对的