从GROUP BY CUBE结果中筛选出NULL列

时间:2019-01-31 23:40:21

标签: sql-server sql-server-2012 grouping

我正在使用GROUP BY CUBE输出 每年每个事件#总最低

SELECT
            IncidentNumber AS [Incident #]
          , SUM(Duration) AS [Total Min.]
          , YEAR(EntryDateTime) AS [Year]

     FROM TableX
     WHERE 
    GROUP BY CUBE
    (
        IncidentNumber
          , YEAR(EntryDateTime)
    )

但是我不希望 Year NULL的行 它们是行中信息的冗余 显示年份。

输出

enter image description here

所以我将其设置为子查询。

    SELECT * FROM
    (
            SELECT
                        IncidentNumber AS [Incident #]
                      , SUM(Duration) AS [Total Min.]
                      , YEAR(EntryDateTime) AS [Year]

                 FROM TableX
                 WHERE 
                GROUP BY CUBE
                (
                    IncidentNumber
                      , YEAR(EntryDateTime)
                )
    ) T
    WHERE T.Year IS NOT NULL;

是否有其他方法可以过滤掉 NULL而不将其作为子查询?

如果我使用GROUP BY ROLLUP,我仍然会得到NULL。 enter image description here

0 个答案:

没有答案
相关问题