我有一个MessageId列,并且必须对不同的MessageId进行计数,如果结果为1,则必须将count显示为0,否则将显示计数值本身。如果数据集更多,则两次使用不重复将更加耗时。
...
CASE
WHEN count(DISTINCT MessageId) = 1
THEN 0
ELSE count(DISTINCT MessageId)
END as Count
...
总有一个查询本身只能使用一次COUNT(DISTINCT)吗?而且也不想使用多个查询,例如将其分配给变量然后使用它。
答案 0 :(得分:4)
这是一种方法:
COALESCE(NULLIF(COUNT(DISTINCT MessageId), 1), 0)
答案 1 :(得分:1)
似乎您需要在下面
@Jvm