2014-10-28 71 views
0

我无法成功编写此查询,但尚未找到任何资源。统计一列的重复次数

我有一个两列的表。该表看起来有点像这样:

|student|teacher| 
| 5314 | 656 | 
| 4189 | 671 | 
| 4506 | 671 | 
| 4515 | 671 | 
| 3754 | 756 | 
| 3760 | 756 | 
| 1066 | 781 | 

我想要的结果集是这样的:

|teacher|count| 
| 656 | 1 | 
| 671 | 3 | 
| 756 | 2 | 
| 781 | 1 | 

任何暗示,真是不胜感激。

+1

好的地方开始阅读:http://en.wikipedia.org/wiki/Aggregate_function和http://en.wikipedia.org/wiki/SQL#Queries – 2014-10-28 19:35:22

+0

这两个不同的表? – 2014-10-28 19:35:46

+0

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html查看COUNT示例。 – Mihai 2014-10-28 19:41:06

回答

0

您想在此处使用COUNT(*)聚合函数,并按教师列分组。

试试这个:

SELECT teacher, COUNT(*) as numStudents 
FROM myTable 
GROUP BY teacher; 

这将组全部由老师从你的表行,并计算该组中的行数(有效计数的学生数量)。

这里是更多关于Aggregate Functions给你。

+0

谢谢大家的意见。 – notuo 2014-10-28 20:01:59

+0

当然 - 一个好的答案应该总是伴随着解释,而不仅仅是复制和粘贴代码。如果是这样的话,请随时给予高分;) – AdamMc331 2014-10-28 20:02:41