Mysql 优化SQL查询以获取计数(*)
我有下面的查询,它得到一些我想按属性“state”分组的结果。 我尝试了不同的子查询,但它们不起作用,我有点受阻。 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
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