使用大于号的计数

时间:2013-05-22 17:36:58

标签: mysql count aggregate-functions

我有一个查询,如下所示:

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;

我知道它无效,但是类似的东西。

1 个答案:

答案 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;