数据库

SQL Group by 用法

2011-04-15

可以在SELECT ... GROUP BY 分组后筛选数据。

筛选的关键字是HAVING。HAVING的作用和WHERE类似。都是用来过滤查询的中间记录。但是,HAVING从句指定的每个列规范必须出现在一个聚合函数内,或者出现在GROUP BY从句命名的列中。与WHERE不同的是:WHERE是在分组前(查询后)筛选数据;HAVING是在分组后筛选数据。

例如:
 
SELECT
SUBSTR(A.HYLB_DM,1,2),
COUNT(*),
SUM(A.ZCZB)
FROM DJ_ZT A
GROUP BY SUBSTR(A.HYLB_DM,1,2)
HAVING MAX(YEAR(A.CJRQ))<>2007;
-----------------------------
08      51308   2988475.0376
 
SELECT
SUBSTR(A.HYLB_DM,1,2),
COUNT(*),
SUM(A.ZCZB)
FROM DJ_ZT A
GROUP BY SUBSTR(A.HYLB_DM,1,2)
HAVING MAX(YEAR(A.CJRQ))<>2007 AND COUNT(*)>2;
------------------------------
08      51308   2988475.0376