我有以下查詢正常工作,但需要篩選其狀態設置爲「無效」或「已存檔」的記錄中的年齡。我的表名爲Contact,並具有狀態列和年齡列。其他狀態爲「活動」,「後續」和「已完成」。如何在GROUP BY CASE之後集成HAVING子句
SELECT CASE
WHEN age BETWEEN '0' AND '18' THEN '18 and Under'
WHEN age BETWEEN '19' AND '30' THEN '19 to 30'
WHEN age BETWEEN '31' AND '40' THEN '31 to 40'
WHEN age BETWEEN '41' AND '50' THEN '41 to 50'
WHEN age BETWEEN '51' AND '60' THEN '51 to 60'
ELSE '61 and Older'
END
,Count(id)
FROM Contact
GROUP BY
CASE
WHEN age BETWEEN '0' AND '18' THEN '18 and Under'
WHEN age BETWEEN '19' AND '30' THEN '19 to 30'
WHEN age BETWEEN '31' AND '40' THEN '31 to 40'
WHEN age BETWEEN '41' AND '50' THEN '41 to 50'
WHEN age BETWEEN '51' AND '60' THEN '51 to 60'
ELSE '61 and Older'
END
我想HAVING子句整合如下,但不知道在哪裏把它:
HAVING status NOT IN('Invalid', 'Archived')
無論我嘗試給出了一個錯誤。任何幫助指出正確的方向將不勝感激。
我認爲,這個錯誤可能來自無效'集團BY' –
嘗試來'FROM聯繫WHERE狀態NOT IN( '無效', '歸檔')GROUP BY ...'。不知道這是否會工作。 – JunM
使用'group by 1'(列號參考)。無需重複整個案例條款。 –