我有一个查询,看起来像这样:
SELECT
cat_code, cat_desc,
count(mthtrn > 0),
count(ltmtrn)
from my_temp_table
group by cat_code
order by mthsls desc;
如何让我的第一个 count()
只获取值大于零的计数,但在第二个中获取所有值?我可以用 sum()
做的更好,但我似乎做不到 if for count,即使没有抛出错误也是如此。
理想情况下,这会很棒:
SELECT
cat_code, cat_desc,
count(distinct member_id having mthtrn > 0),
count(ltmtrn)
from my_temp_table
group by cat_code
order by mthsls desc;
我知道它无效,但类似的东西。
最佳答案
使用:
SELECT
cat_code, cat_desc,
count(distinct case when mthtrn > 0 then member_id end),
count(ltmtrn)
from my_temp_table
group by cat_code
order by mthsls desc;
关于mysql - 使用大于号计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16698224/