目前我正在进行一个查询,包含3个子查询,
所有查询都在同一张表上进行,
所有查询都有不同的where子句
我考虑过使用group by,但这会破坏SUM()的结果
以下是该查询:
SELECT SUM(club) AS club,
(SELECT COUNT(id) FROM action_6_members WHERE SUBSTR(CODE, 1, 1) = '9') AS 5pts,
(SELECT COUNT(id) FROM action_6_members WHERE SUBSTR(CODE, 1, 1) = 'A') AS 10pts,
(SELECT COUNT(id) FROM action_6_members WHERE SUBSTR(CODE, 1, 1) NOT IN('9', 'A')) AS General
FROM action_6_members;
这里是解释
id select_type table type rows Extra 1 PRIMARY action_6_members ALL 1471 4 SUBQUERY action_6_members ALL 1471 使用where条件 3 SUBQUERY action_6_members ALL 1471 使用where条件 2 SUBQUERY action_6_members ALL 1471 使用where条件
SELECT SUM(club) AS club, COUNT(1) FROM action_6_members GROUP BY IF(SUBSTR(CODE, 1, 1) = 9, 1, IF(SUBSTR(CODE, 1, 1) = 'A', 2, 3));
但是最终我仍然得到了部分值的总和。 - Hailwood