Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server查询需要从组中提取数据_Sql_Sql Server_Tsql_Window Functions_Gaps And Islands - Fatal编程技术网

SQL Server查询需要从组中提取数据

SQL Server查询需要从组中提取数据,sql,sql-server,tsql,window-functions,gaps-and-islands,Sql,Sql Server,Tsql,Window Functions,Gaps And Islands,我有下面的数据,从突出显示的组中,我想从每个组中提取min datetime(灰显的行),但除date外,所有列中的数据都相同。我使用了最小合计,但我缺少日期2019-09-28-12.31.47.653829行。不确定如何从组中获取所有3行。请帮助我,谢谢我理解这是一个缺口和孤岛问题。您需要在所有列中具有相同值的相邻行的最短日期expect date,然后拉出具有最短日期的记录 以下是使用行数()和聚合解决此问题的一种方法: select id, division,

我有下面的数据,从突出显示的组中,我想从每个组中提取min datetime(灰显的行),但除date外,所有列中的数据都相同。我使用了最小合计,但我缺少日期2019-09-28-12.31.47.653829行。不确定如何从组中获取所有3行。请帮助我,谢谢

我理解这是一个缺口和孤岛问题。您需要在所有列中具有相同值的相邻行的最短日期expect date,然后拉出具有最短日期的记录

以下是使用
行数()和聚合解决此问题的一种方法:

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行。