【发布时间】:2015-10-05 20:09:46
【问题描述】:
目前我正忙于两张桌子,Students 和 Classes。这两个都包含一个列 project_group,这是一种将一个班级的多个学生分类为更小的组的方法。
在 Students 表中有一列 City 说明了学生居住的城镇/城市,从已填充的行中,已经有几个城市出现了多个次。我用来检查一个城市被显示多少次的代码是这样的:
SELECT City, count(*)
FROM Students
GROUP BY City
现在我要做的下一件事是按班级显示学生居住在哪些城市以及有多少人居住在那里,例如结果如下:
- 一个 | - | 2
- 一个 |纽约 | 3
- 一个 |洛杉矶 | 1
- B | - | 1
- B |迈阿密 | 2
- B |西雅图 | 1
Students 和 Classes 可以在 project_group 列上相互加入,但我最感兴趣的是他同时使用 前面提到的 GROUP BY,使用 JOIN 并且还显示每个类的结果。
提前致谢, 克拉德
【问题讨论】:
-
你用的是什么数据库?
-
你能举一个两个表中包含的列的例子吗?具体来说,您希望将这两个表加入什么?这将帮助我编写查询,让您了解需要做什么。
-
@HART CO 我正在使用 SQL Developer。
-
@Zi0n1 在表 Classes 中有列 project_group 和 class_id。 project_group 用于加入 Students 表。此外,在 Students 中有列;学生证号、名字、姓氏、tussenvoegsels(这是荷兰语,tussenvoegsels 可以放在名字和姓氏之间,例如“Vincent van Gogh”中的“van”)、电子邮件、手机号码、出生日期、项目组和城市。
-
@JohnBollinger 我已经尝试过显示有多少人住在一个城市,请参阅我的问题中的第一个代码示例。加入表格也不是问题。问题是我不只是想展示有多少人住在一个城市,还要展示每个班级。当在 SELECT 中不只使用 'City, count(*)' 时会出现问题,随后的错误是:不是 GROUP BY 表达式。