Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 优化SQL查询以获取计数(*)_Mysql_Sql_Count_Subquery - Fatal编程技术网

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

Mysql 优化SQL查询以获取计数(*),mysql,sql,count,subquery,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_can

我有下面的查询,它得到一些我想按属性“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
当前返回:

我会得到每个州的计数。例子: F、 十四, 一、 十,
O、 9

你能不能先按州排序,然后按ID排序?这是因为每个ID\u候选人\u基本都有更多的实例。示例:F-1080-2013.09.03 O-1080-2013.09.03
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