使用语法代码"CASE GROUPING"的目的



我不明白使用语法代码"CASE GROUPING"的目的是什么?

不幸的是,我没有数据库来查看下面的源代码。

SELECT 
    CASE GROUPING(st.stor_name) WHEN 0 THEN st.stor_name ELSE 'ALL' END AS Store, 
    CASE GROUPING(s.type) WHEN 0 THEN s.type ELSE 'ALL TYPES' END AS Type, 
    SUM(s.qty) AS TotalSold 
FROM 
   (SELECT DISTINCT st.stor_id, t.type, 0 AS qty 
    FROM stores st CROSS JOIN titles t 
    UNION ALL 
    SELECT 
        s.stor_id, 
        t.type, s.qty 
    FROM sales s JOIN titles t ON s.title_id=t.title_id) s 
JOIN stores st ON (s.stor_id=st.stor_id) 
GROUP BY st.stor_name, s.type WITH CUBE 

CASE是一个条件表达式,类似于if语句。

GROUPING是一个函数:

指示是否聚合GROUP BY列表中指定的列表达式。GROUPING在结果集中为聚合返回1,为未聚合返回0。当指定GROUP BY时,GROUPING只能在SELECT list、HAVING和ORDER BY子句中使用。

最新更新