我有一个表(“name”),有三列(“first”、“last”和“club”)。有几个重复自己的名字和几个重复自己的姓氏,以及4个俱乐部。几个学生加入了不止一个俱乐部。一小部分数据低于…
表:名称
------------------------------------
| last |first |club |
------------------------------------
|Doe |John |Fencing Club |
|Doe |Jane | Swim Club |
|Doe | Jane |Tennis Club |
|Frank |Kurt |Computer Club |
|Frank |Kurt |Swim Club |
|Frank |Kurt |Fencing Club |
|Frank |Melissa |Computer Club |
|Frank |Melissa |Tennis Club |
|Jackson |John |Fencing Club |
|Peters |Ashley |Computer Club |
|Peters |Ashley |Fencing Club |
|Peters |Ashley |Swim Club |
|Peters |Ashley |Tennis Club |
------------------------------------我希望做的是创建一份简明的报告,其中我合并信息,仅显示基于学生所在俱乐部数量的学生数量。
输出应如下所示的…
-----------------------------
|Students| Clubs Per Student|
|2 | 1 |
|2 | 2 |
|1 | 3 |
|1 | 4 |
-----------------------------有没有想过我该怎么做呢?我绞尽脑汁研究了几个小时,但似乎想不出一个可行的解决方案。谢谢!
发布于 2016-01-31 12:20:01
Select concat(last, ', ', first) as 'Student', count(club) from name group by concat(last, ', ', first)但实际上,你应该给他们所有的id#s,以防有多个学生具有相同的名字。在这种情况下,您可能希望按学生id#进行分组。
编辑:
我误解了你要找的东西。您将需要:
Select count(Student) as 'Students', clubs from (Select concat(last, ', ', first) as 'Student', count(club) as 'clubs' from name group by concat(last, ', ', first)) a group by clubshttps://stackoverflow.com/questions/35110257
复制相似问题