我们说我有这个数据库:
ID | Name | City
1 | John | TLV
2 | Abe | JLM
3 | John | JLM
我想知道每个城市有多少不同名字的人。
我试图像这样使用GROUP BY
:
SELECT `city`, count(`index`) as `num` FROM `people`
GROUP BY `city`, `name`
但这似乎是两者分组。
City | num
TLV | 1
JLM | 1
我想要的是按city
分组,并按name
对结果进行分组。
City | num
TLV | 1
JLM | 2
我该怎么做?
答案 0 :(得分:1)
我想你想要这个:
SELECT `city`, count(distinct name) as `num`
FROM `people`
GROUP BY `city`;
您可能只需要count(name)
。 。 。我不确定你的意思是什么"不同的名字"。如果您不需要count(name)
,则最好distinct
。