gpt4 book ai didi

sql - 选择组上每个组的最大记录

转载 作者:行者123 更新时间:2023-11-29 12:37:09 26 4
gpt4 key购买 nike

我正在使用 PostgreSQL。我需要选择每组的最大值,情况是表格代表每天销售的产品,我想知道每天最畅销的产品。

SELECT sum(detalle_orden.cantidad) as suma,detalle_orden.producto_id as producto
,to_char(date_trunc('day',orden.fecha AT TIME ZONE 'MST'),'DY') as dia
FROM detalle_orden
LEFT JOIN orden ON orden.id = detalle_orden.order_id
GROUP BY orden.fecha,detalle_orden.producto_id
ORDER BY dia,suma desc

正在返回:

suma  producto  dia
4 1 FRI
1 2 FRI
5 3 TUE
2 2 TUE

我想得到:

suma  producto  dia
4 1 FRI
5 3 TUE

只有每天的顶级产品(每组的max(suma))。

我尝试了不同的方法,比如子查询,但是使用的聚合函数让事情变得有点困难。

最佳答案

您可以 (ab) 将 SELECT DISTINCT ON 与适当的排序子句一起使用。假设您将之前的查询放入 View 中:

SELECT DISTINCT ON (dia, producto) * FROM some_view ORDER BY dia, producto, suma DESC;

DISTINCT 确保您只会为每一天和产品保留一行,ORDER BY 确保它保留正确的一行

关于sql - 选择组上每个组的最大记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30157306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com