如何将分组依据与空值一起使用



>我有一个SQL查询,结果为:

personCount toatlMinute     Meal    QPWaiting       NoOfCR  CRNo
0           2               NULL    NULL            NULL    NULL
1           7               NULL    NULL            NULL    NULL
2           8               NULL    NULL            NULL    NULL
3           16              NULL    NULL            NULL    NULL
4           128             NULL    NULL            NULL    NULL
0           NULL            NULL    14              2       5555, 6666
3           NULL            NULL    NULL            NULL    NULL
4           NULL            NULL    NULL            NULL    NULL
2           NULL            NULL    14              2       5555, 6666
3           NULL            NULL    14              2       5555, 6666
4           NULL            NULL    14              2       5555, 6666
0           NULL            2       NULL            NULL    NULL

现在我想使用按第一列(personcount)分组,并想对第二列和第三列求和但不想对第 4、5 和 6 列求和。但输出应将所有数据显示为唯一人数。

SELECT
    personCount,
    SUM(toatlMinute) toatlMinute,
    SUM(Meal) Meal,
    QPWaiting,
    NoOfNCR AS NoOfCR,
    NCRNo AS CRNo 
FROM 
    @OperatorData
GROUP BY
    personCount, QPWaiting, NoOfNCR, NCRNo

它给出的输出为

personCount toatlMinute Meal    QPWaiting   NoOfCR  CRNo
0   2   2   NULL    NULL    NULL
0   NULL    NULL    14  2    5555, 6666
1   7   NULL    NULL    NULL    NULL
2   8   NULL    NULL    NULL    NULL
2   NULL    NULL    14  2    5555, 6666
3   16  NULL    NULL    NULL    NULL
3   NULL    NULL    14  2    5555, 6666
4   128 NULL    NULL    NULL    NULL
4   NULL    NULL    14  2    5555, 6666

A 您可以看到有两行用于 0 人计数。但是我只想要一行。

如何获得此输出?请告知

如果要从最后三列中获取值,以便NULL值消失,请使用max()min()

SELECT personCount, SUM(toatlMinute) as toatlMinute, SUM(Meal) as Meal,
       max(QPWaiting) as QPWaiting, max(NoOfNCR) AS NoOfCR, max(NCRNo) AS CRNo 
FROM  @OperatorData
GROUP BY personCount;

最新更新