用于查找每个用户的计数的 SQL

标签 sql count distinct

假设我有下表:

Student      Course           University
1             a                   x
1             b                   x
1             c                   x
1             a                   y
2             a                   x
2             a                   y
2             a                   z
3             a                   x

对于每个学生,我试图找到他们注册的独特类(class)和大学的数量。

输出如下:
Student     No. of Courses        No. of Universities
 1             3                         2
 2             1                         3
 3             1                         1

我将如何为此构建 SQL?

最佳答案

SELECT Student,
       COUNT(DISTINCT Course)     AS NumberOfCourses,
       COUNT(DISTINCT University) AS NumberOfUniversities
FROM   YourTable
GROUP  BY Student 

关于用于查找每个用户的计数的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14247052/

相关文章:

php - 如何从 Select Distinct 中排除一个表

php - 选择不重复的多行

sql - 如何在 sql server 中使用数据透视表(无聚合)?

reporting-services - 计数表达式SSRS报告

无法计算C中文本文件最后一行最后一个单词的数字

sql - 如何从 Rails 中的数据库中选择具有 ID 的不同记录?

java - Java/Eclipse 中的 SQL 调用为 "static checking"?

mysql - 如何建立数据库与数据库之间的关系?

sql - 标准 sql 查询以获取与另一个表匹配的记录字段(Google BigQuery)

mysql - 存储过程和 COUNT IF 语句的问题