在此查询中替换count(CASE WHEN)

时间:2014-05-14 12:12:22

标签: mysql

我想在此查询中替换CASE WHEN

SELECT label ,date,count(id) AS nb, count(CASE WHEN label='test' THEN 1 END) AS nb_test
    FROM
    sil_test,sil_data
    WHERE
    sil_test.id_t=sil_data.id_t
    GROUP BY
    label, date

任何想法?

1 个答案:

答案 0 :(得分:2)

以下是与MySQL一起使用的此查询的另一个版本:

SELECT label ,date,count(id) AS nb, sum(label = 'test') AS nb_test
FROM sil_test join
     sil_data
     on sil_test.id_t = sil_data.id_t
GROUP BY label, date;

我不确定这解决了什么问题,除了用特定于MySQL的功能替换ANSI标准语法。当然,修复连接以使它们是明确的(非常,非常,非常推荐)。