在CASE WHEN中一次使用COUNT

时间:2019-04-01 11:45:31

标签: sql sqlite

我有一个MessageId列,并且必须对不同的MessageId进行计数,如果结果为1,则必须将count显示为0,否则将显示计数值本身。如果数据集更多,则两次使用不重复将更加耗时。

...
CASE 
   WHEN count(DISTINCT MessageId) = 1 
      THEN 0
   ELSE count(DISTINCT MessageId)
END as Count
...

总有一个查询本身只能使用一次COUNT(DISTINCT)吗?而且也不想使用多个查询,例如将其分配给变量然后使用它。

2 个答案:

答案 0 :(得分:4)

这是一种方法:

COALESCE(NULLIF(COUNT(DISTINCT MessageId), 1), 0)

答案 1 :(得分:1)

似乎您需要在下面

@Jvm