时间:2016-11-26 17:26:18

标签: sql group-by

我们说我有这个数据库:

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

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我想你想要这个:

SELECT `city`, count(distinct name) as `num`
FROM `people`
GROUP BY `city`;

您可能只需要count(name)。 。 。我不确定你的意思是什么"不同的名字"。如果您不需要count(name),则最好distinct