为什么要研究这个语法?
正常情况下在workfine中使用视图法可以实现同样效果,学习这个是为了为更高级的功能和需求做准备,比如存储过程。
基础用法
SQL中的HAVING
子句用于对已分组的数据进行条件过滤。它通常与GROUP BY
子句一起使用,以便在聚合操作(如SUM()、AVG()、COUNT()等)后,能够根据这些聚合结果来筛选行。这意味着HAVING
允许你指定一个条件来决定哪些分组应该保留在查询结果中。
与WHERE
子句不同,WHERE
在数据分组之前过滤行,而且不能直接用于聚合函数,而HAVING
子句则在分组之后进行过滤,并且能够直接引用聚合函数的结果。
例如,如果你想要找出订单总金额超过50元的所有订单编号,你会先使用GROUP BY
对订单编号进行分组,然后通过某个聚合函数(如SUM()
)计算每组的总金额,最后使用HAVING
子句来过滤出满足条件的分组:
SELECT order_num, SUM(quantity * item_price) AS ordertotal
FROM orderitems
GROUP BY order_num
HAVING SUM(quantity * item_price) >= 50;
在这个例子中,HAVING SUM(quantity * item_price) >= 50
就是用来保留那些订单总金额大于或等于50元的订单记录。
用法示例
素材下载:HAVING编号缺失.xlsx
请登录后查看回复内容