SQL Server 查询需要从组中提取数据
Posted
技术标签:
【中文标题】SQL Server 查询需要从组中提取数据【英文标题】:SQL Server query need to pull data from group 【发布时间】:2020-01-31 13:16:16 【问题描述】:我有以下数据和突出显示的组我想从每个组中提取最小日期时间(灰色行),但除日期外,所有列中的数据都相同。我使用了 Min 聚合,但我缺少日期 2019-09-28-12.31.47.653829 行。不确定如何从组中获取所有 3 行。请帮帮我谢谢
【问题讨论】:
编辑问题以文本格式而不是图像添加一些示例数据和所需结果。 【参考方案1】:我将其理解为差距和孤岛问题。您希望所有列中具有相同值的相邻行的最小日期期望日期,然后拉出具有最小日期的记录。
这是使用row_number()
和聚合解决它的一种方法:
select
id,
division,
sub_div,
status,
queue,
min(event_dattim) min_event_dattim
from (
select
t.*,
row_number() over(order by event_dattim) rn1,
row_number() over(
partition by id, division, sub_div, status, queue
order by event_dattim
) rn2
from mytable t
) t
group by
id,
division,
sub_div,
status,
queue,
rn1 - rn2
【讨论】:
非常感谢您的回答!我尝试了建议的 SQL 查询,但仍然缺少日期 2019-09-28-12.31.47.653829 行的审核状态。以上是关于SQL Server 查询需要从组中提取数据的主要内容,如果未能解决你的问题,请参考以下文章