0
是否可以在Vertica中的某些列上使用HAVING子句? 尋找最有效的方式,因爲我正在處理數百萬行。Vertica - 僅在某些列上使用HAVING進行篩選結果
這裏是什麼,我試圖做一個例子: 鑑於表t:
A | B | number
--+---+-------
a | c | 1
a | c | 2
a | d | 1
b | e | 1
b | e | 1
c | c | 1
如果我運行:
SELECT A, B, sum(number) as total
FROM t
GROUP BY 1, 2
HAVING sum(number) >= 2
我會得到:
A | B | total
--+---+------
a | c | 3
b | e | 2
我想以某種方式能夠將HAVING條件應用於列A,而不是(A,B)組合,以便我的結果真的會:
A | B | total
--+---+------
a | c | 3
a | d | 1
b | e | 2
想我可以像下面這樣做:
SELECT A, B, sum(number) as total
FROM t
WHERE A IN (
SELECT A
FROM t
GROUP BY 1
HAVING sum(number) >= 2
)
GROUP BY 1, 2
但有一個更好的辦法?
你必須解釋什麼是'適用於HAVING條件只是列A'你的第二個例子返回'a | d | 1'那麼這與'HAVING(a)> 2'有什麼關係?' –
對不起,遲到的迴應。原因'a | d | 1'出現是因爲'HAVING'只適用於A列,所以a的總數是'1 + 2 + 1 = 4',所以任何參與它的東西都應該出現('a | c'和'a | e')。感謝您的熱心幫助。 –