【发布时间】:2020-12-08 15:58:14
【问题描述】:
我是 postgres 的初学者,想获得每个月的第一行(分组依据),但我不确定如何。
我的表order如下:
order_id | cust_id | order_date
------------------------------------------------
order1 | cust1 | January 19, 2020, 1:00 PM
order2 | cust1 | January 30, 2020, 2:00 PM
order3 | cust1 | February 20, 2020, 3:00 PM
order4 | cust1 | February 28, 2020, 4:00 PM
order5 | cust2 | February 27, 2020, 4:00 PM
预期结果应如下:
order_id | cust_id | order_date
------------------------------------------------
order1 | cust1 | January 19, 2020, 1:00 PM
order3 | cust1 | February 20, 2020, 3:00 PM
order5 | cust2 | February 27, 2020, 4:00 PM
但我无法使用下面的查询获得上述结果,我得到的结果与表格相同:
select distinct on (order_date)cust_id, order_date, order_id from order
group by delivery_date, customer_id, delivery_id
order by delivery_date asc
【问题讨论】:
-
这能回答你的问题吗? Select first row in each GROUP BY group?
-
@astentx 我无法通过链接线程获得预期结果。它还给了我另一个我希望避免的额外专栏。但它非常相似。谢谢
-
如果您不需要某些列,您可以将它们从选择列表中排除。使用您需要的列名。
result is not as I expected怎么样:更好地描述确切的问题,而不是一般的“不工作”。
标签: sql postgresql group-by distinct-on