优化SQL查询以获取计数(*)

时间:2013-09-10 15:54:49

标签: mysql sql count subquery

我有以下查询获得一些我希望按属性'state'分组的结果。 我尝试了不同的子查询,但它们没有工作,我有点被阻止。 SQL是:

    SELECT state, id_candidate_basic, MAX( DATE )  FROM `candidate_state` 
    WHERE `date` <= '2013-09-06 00:00:00' GROUP BY id_candidate_basic
    ORDER BY `candidate_state`.`id_candidate_basic` DESC

目前返回:

enter image description here

我会得到每个州的计数(*)。例: F,14 我,10 O,9

1 个答案:

答案 0 :(得分:0)

SELECT  state, 
        id_candidate_basic, 
        MAX( DATE ),
        COALESCE(totalCount, 0) totalCount
FROM    `candidate_state` 
        LEFT JOIN 
        (
            SELECT  state, COUNT(*) totalCount
            FROM    candidate_state
            WHERE   `date` <= '2013-09-06 00:00:00' 
            GROUP   BY state
        )   ON candidate_state.state = b.state
WHERE   `date` <= '2013-09-06 00:00:00' 
GROUP   BY id_candidate_basic
ORDER   BY `candidate_state`.`id_candidate_basic` DESC