问题是这样,
有表字段dept,时间, 但是我只想按dept分组,按时间排序,时间不出现在查询字段里
原纪录->
x
想要结果->

解决:
先按时间部门排序,然后窗口函数取时间最小的,最后包起来distinct
窗口函数的语法 :
窗口函数名([expr]) over(partition by <列名清单 > order by <排序列清单>)
1. over : 表示窗口函数关键字
2. partition by : 表示对查询返回的结果集进行分组
3. order by : 表示对查询返回的结果集分组后的数据进行组内排序
SQL:
select distinct dept,min_date from (
select dept, min(b.createtime) OVER(PARTITION BY dept ORDER BY b.createtime ASC) AS min_date
from bshowyj_task_row a,bshowyj_measure b
where a.rowid=b.taskid and b.status='2' order by b.createtime desc ) c
order by min_date desc

-->

问题解决
本文介绍如何在PostgreSQL中实现按部门分组并按时间排序的数据查询,通过使用窗口函数获取每个部门最早的时间记录。
4190

被折叠的 条评论
为什么被折叠?



