SELECT Cno, COUNT(Sno) FROM SC GROUP BY Cno用有数据的例子做一些
时间: 2024-03-23 14:41:41 浏览: 77
假设我们有一个 SC 表,其中记录了学生选修的课程成绩信息,包含以下字段:
- Sno:学生编号
- Cno:课程编号
- Score:成绩
下面是一个简单的 SC 表示例:
| Sno | Cno | Score |
| ---- | ---- | ----- |
| 001 | 101 | 85 |
| 002 | 102 | 72 |
| 003 | 101 | 93 |
| 002 | 101 | 68 |
| 004 | 103 | 90 |
| 001 | 103 | 78 |
| 002 | 103 | 88 |
| 004 | 101 | 95 |
| 003 | 102 | 80 |
| 004 | 102 | 83 |
现在我们想要查询每门课程的选修人数,可以使用以下 SQL 语句:
```
SELECT Cno, COUNT(Sno)
FROM SC
GROUP BY Cno;
```
执行以上 SQL 语句,会得到以下结果:
| Cno | COUNT(Sno) |
| ---- | ---------- |
| 101 | 4 |
| 102 | 3 |
| 103 | 3 |
可以看到,以上结果表示课程编号为 101 的课程有 4 个学生选修,课程编号为 102 的课程有 3 个学生选修,课程编号为 103 的课程也有 3 个学生选修。
相关问题
解释这行代码SELECT DISTINCT CNO FROM SC GROUP BY CNO HAVING COUNT(SNO)=(SELECT COUNT(SNO) FROM STUDENT)
这行代码的作用是从成绩表(SC)中选取不重复的课程号(CNO),按照课程号(CNO)分组,筛选出学生数等于学生表(STUDENT)中学生总数的课程号(CNO)。
具体解释如下:
- SELECT DISTINCT CNO:选择成绩表(SC)中不重复的课程号(CNO)。
- GROUP BY CNO:按照课程号(CNO)对结果进行分组。
- HAVING COUNT(SNO)=(SELECT COUNT(SNO) FROM STUDENT):对分组后的结果进行筛选,只保留学生数等于学生表(STUDENT)中学生总数的课程号(CNO)。其中,COUNT(SNO)表示分组后每个课程号(CNO)对应的学生数,SELECT COUNT(SNO) FROM STUDENT表示从学生表(STUDENT)中选取学生总数。
sqlserver中,将下列语句转换为使用exist语句完成的语句: SELECT Sno FROM SC,Course where SC.Cno=Course.Cno Group by Sno having count(*)=(select count(*) from Course)
以下是使用EXISTS语句完成的SQL语句:
```
SELECT Sno
FROM SC
WHERE EXISTS (
SELECT 1
FROM Course
WHERE SC.Cno = Course.Cno
HAVING COUNT(DISTINCT Course.Cno) = (SELECT COUNT(*) FROM Course)
)
GROUP BY Sno;
```
这个查询的做法是,在SC表中对每个学生进行分组,然后检查是否存在一个子查询,该子查询返回的是所有课程的数量。子查询中的计数是基于Course表中不同的课程号进行的,而SC表中具有相同课程号的行将被聚合在一起并计数。如果在SC表中找到的课程数量等于Course表中的课程数量,则该学生被认为是所需学生的一部分,并且将包括在查询结果中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)