SQL Server:对结果进行分组

时间:2016-09-09 14:56:26

标签: sql-server aggregation

我需要根据行的内容分离结果集,每次该行包含代码110时,就意味着它启动了一个新的组。

这一行是服务状态代码,我每次客户收到答案时都会控制,如果客户端返回以下问题,表格会收到一条代码为110的新记录。

我尝试使用LAG功能,但无法完全得到我需要的东西,我也使用了分区的row_number,但无法得到我需要的东西。

关于如何实现这一目标的任何想法?

谢谢。

编辑:

示例数据: https://docs.google.com/spreadsheets/d/1WUcg5A0r6LGvXC9UOdjG9YUtxG2L47od8H9cX8MgaFQ/edit?usp=sharing

我需要在此数据上创建一个内部组,每次内部代码为110时,我需要增加组号,例如电子表格中的内部组列。

1 个答案:

答案 0 :(得分:0)

SELECT
    d.[Start date],
    d.[final date],
    d.[Situation],
    d.[Reason for client reopening],
    d.[Call time],
    d.[Total time],
    d.[Internal Code],
    d.[SLA time],
    SUM(
        CASE
            WHEN d.[Internal Code] = 110 THEN 1
            ELSE 0
        END) OVER (
        ORDER BY
            d.[Start date] ROWS UNBOUNDED PRECEDING)
FROM
    dbo.ExampleData d;