GROUP BY子句标识查询的分组列。必须在查询中使用标准计算聚合函数(SUM、AVG和COUNT)时声明分组列。
GROUP BY expression [, ...]
GROUP BY中列或表达式列表必须匹配查询列表中的非聚合表达式的列。
例如,考虑以下简单查询中,查询列表包含两个聚合表达式。第一个聚合表达式使用SUM函数,第二个聚合表达式使用COUNT函数。必须将其余两个列(LISTID 和 EVENTID)声明为分组列。
select listid, eventid, sum(pricepaid) as revenue,
count(qtysold) as numtix
from sales
group by listid, eventid
order by 3, 4, 2, 1
limit 5;
listid | eventid | revenue | numtix
-------+---------+---------+--------
89397| 47 | 20.00 | 1
106590 | 76 | 20.00 | 1
124683 | 393 | 20.00 | 1
103037 | 403 | 20.00 | 1
147685 | 429 | 20.00 | 1
(5 rows)
GROUP BY子句中的表达式也可以使用序号来引用选择列表。
例如,上一个示例的缩略形式
select listid, eventid, sum(pricepaid) as revenue,
count(qtysold) as numtix
from sales
group by 1,2
order by 3, 4, 2, 1
limit 5;
listid | eventid | revenue | numtix
-------+---------+---------+--------
89397 | 47 | 20.00 | 1
106590 | 76 | 20.00 | 1
124683 | 393 | 20.00 | 1
103037 | 403 | 20.00 | 1
147685 | 429 | 20.00 | 1
(5 rows)
文档内容是否对您有帮助?