查询每门课程的课程名和选修的学生数
时间: 2024-06-09 11:10:17 浏览: 3
查询每门课程的课程名和选修的学生数可以使用以下SQL语句实现:
SELECT course.cname, COUNT(score.sno) AS students_count
FROM course
LEFT JOIN score ON course.cno = score.cno
GROUP BY course.cname;
相关问题
用数据库查询每门课程被选修的学生数
假设你的选课信息表格名为"course_selection",其中有课程号(course_id)和学生学号(student_id)等字段,而课程信息表格名为"courses",其中有课程号(course_id)和课程名称(course_name)等字段,学生信息表格名为"students",其中有学生学号(student_id)和学生姓名(name)等字段。
那么查询每门课程被选修的学生数的SQL语句如下:
```
SELECT courses.course_name, COUNT(*) AS student_count
FROM course_selection
JOIN courses ON course_selection.course_id = courses.course_id
GROUP BY courses.course_id
```
这条语句通过JOIN操作将选课信息表格和课程信息表格连接起来,然后通过GROUP BY语句按照课程号进行分组,并使用COUNT()函数统计每组中的行数,即为每门课程被选修的学生数。最后,通过AS关键字将统计结果命名为"student_count",同时查询出课程名称(course_name)和学生数目(student_count)。
Spark求每名同学的选修的课程门数
假设有如下的选课表格:
| 学生姓名 | 选修课程1 | 选修课程2 | 选修课程3 |
| -------- | --------- | --------- | --------- |
| 张三 | 语文 | 数学 | 英语 |
| 李四 | 历史 | 地理 | 生物 |
| 王五 | 英语 | 物理 | 化学 |
可以使用 Spark SQL 来进行数据分析。首先,需要将上述表格转化成 Spark DataFrame 的格式,代码如下:
```
from pyspark.sql import SparkSession
# 初始化 SparkSession
spark = SparkSession.builder.appName("CourseCount").getOrCreate()
# 定义选课表格
data = [("张三", "语文", "数学", "英语"),
("李四", "历史", "地理", "生物"),
("王五", "英语", "物理", "化学")]
# 创建 DataFrame
df = spark.createDataFrame(data, ["Name", "Course1", "Course2", "Course3"])
# 展示 DataFrame
df.show()
```
接着,可以使用 Spark SQL 的 `selectExpr` 函数和 `case when` 语句来计算每名同学的选修课程门数,代码如下:
```
from pyspark.sql.functions import expr
# 使用 selectExpr 函数和 case when 语句计算每名同学的选修课程门数
df.selectExpr("Name",
"case when Course1 is not null then 1 else 0 end + \
case when Course2 is not null then 1 else 0 end + \
case when Course3 is not null then 1 else 0 end as CourseCount") \
.show()
```
输出结果如下:
```
+----+-----------+
|Name|CourseCount|
+----+-----------+
|张三 | 3|
|李四 | 3|
|王五 | 3|
+----+-----------+
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)