我的表 -
pid id subject section
1 1 7 0
2 1 12 0
3 1 13 1
4 1 13 2
5 1 13 3
6 1 14 3
7 1 14 4
8 2 15 1
9 2 16 1
获得的结果 -
id subject total
1 7 1
1 12 1
1 13 3
1 14 2
我的查询 -
SELECT DISTINCT(SUBJECT), count(section)
FROM mytable
GROUP BY section
WHERE id = 1
但这是一个错误,让我知道我做错了什么
错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = 1' at line 4: SELECT DISTINCT(SUBJECT), count(section) FROM mytable GROUP BY section WHERE id = 1
答案 0 :(得分:2)
语法错误是由于错误的WHERE
子句引起的。它需要在 GROUP BY
之前。此外:
查询应该在这一行:
SELECT SUBJECT, count(section)
FROM mytable
WHERE id = 1
GROUP BY SUBJECT
答案 1 :(得分:1)
您需要group by
subject
,因为这是不同的值。在该组中,您希望计算section
的外观。
SELECT 1 as id, subject, count(section) as total
FROM mytable
WHERE id = 1
GROUP BY subject
由于id
列不在组中,您可以选择该静态值,也可以将其替换为min(id) as id
而不是1 as id
答案 2 :(得分:0)
您希望按主题而不是分组进行分组。而且你不需要区别 - 它与GROUP BY是多余的。
SELECT id, subject, count(section)
FROM mytable
WHERE id = 1
GROUP BY id, subject
答案 3 :(得分:0)
SELECT SUBJECT, count(section)
FROM mytable
WHERE id = 1
GROUP BY SUBJECT