我有一个查询,如下所示:
SELECT
cat_code, cat_desc,
count(mthtrn > 0),
count(ltmtrn)
from my_temp_table
group by cat_code
order by mthsls desc;
如何让我的第一个count()
只能获得大于零的值,但在第二个中获取所有值?我可以用sum()
来做更大的事情,但是如果算了,我似乎无法做到,即使没有引发任何错误。
理想情况下,这会很棒:
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;
我知道它无效,但是类似的东西。
答案 0 :(得分:0)
使用:
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;