[英]Single use of COUNT in CASE WHEN
我有一個MessageId列,並且必須計算不同MessageId的計數,如果結果為1,則必須將count顯示為0,否則將顯示計數值本身。 如果數據集更多,那么使用兩次不重復將更加耗時。
...
CASE
WHEN count(DISTINCT MessageId) = 1
THEN 0
ELSE count(DISTINCT MessageId)
END as Count
...
無論如何,僅使用一個查詢本身就只能使用一次COUNT(DISTINCT)嗎? 而且也不想使用多個查詢,例如將其分配給變量然后使用它。
這是一種方法:
COALESCE(NULLIF(COUNT(DISTINCT MessageId), 1), 0)
看來你需要下面
case when sum( case when MessageId= 1 then 1 else 0 end) =1
then 0 else
count(DISTINCT MessageId) end as cnt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.