簡體   English   中英

如何使用 ROLLUP 過濾 SQL 查詢

[英]How to filter a SQL Query using ROLLUP

這個查詢:

SELECT 1, 2, count(*) 
FROM t
GROUP BY ROLLUP (1, 2)
ORDER BY 1, 2

節目:

1, 2 
A Null 3
A Blue 2
A Neon 1
B NULL 2
B Navy 2
C NULL 4
C Neon 2
C Blue 2

你看到總和 A = 3、B = 2 和 C = 4?

我想過濾以僅顯示 SUM 是否大於 2 以及所有相關數據。 所以我會看到所有 A 和所有 C,但不會看到 B。

如果我添加 HAVING COUNT(*) > 2 它會影響所有值。 我會看到第 1 行和第 6 行。

我也厭倦了 HAVING grouping(count(*)) > 2 但得到錯誤“無法對包含聚合或子查詢的表達式執行聚合函數。” 我是 SQL 的新手,所以我不知道這是否與我正在嘗試做的事情有關。

謝謝!

使用存在如下

select a.* from 
(
SELECT col1, col2, count(*) as cnt
FROM t
GROUP BY ROLLUP (col1, col2)
) a where 
 exists ( select 1 from 
   (

    SELECT 1, 2, count(*) as cnt
    FROM t
    GROUP BY ROLLUP (1, 2)

   ) b where a.col1=b.col1 and b.cnt>2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM