[英]Postgres - using DISTINCT ON to get first row, but also getting the COUNT(*) work
我正在使用
SELECT DISTINCT ON()
从一组行返回特定行。 效果很好。 但我还想要返回的是“COUNT(*)”。 所以它可能看起来像
SELECT DISTINCT ON(name)
name, num_items, COUNT(name)
FROM customers
ORDER BY name, num_items DESC
但是,当然,我得到一个错误,说“名称应该在GROUP BY聚合函数中”。
如何使用“count()”包含相同的结果?
你可以使用count
作为窗口函数:
select distinct on (name)
name, num_items, count(*) over(partition by name)
from customers
order by name, num_items desc;
或者在您的情况下,您可以只使用group by
名称group by
并使用简单聚合:
select
name, max(num_items), count(*)
from customers
group by name
order by name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.