前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL练习八:超过5名学生的课程

MySQL练习八:超过5名学生的课程

原创
作者头像
Mandy的名字被占用了
修改2021-09-26 09:24:10
3660
修改2021-09-26 09:24:10
举报

题目表述

有一个courses 表 ,有: student (学生) 和 class (课程)。

请列出所有超过或等于5名学生的课。

例如,表:

代码语言:txt
复制
+---------+------------+
| student | class      |
+---------+------------+
| A       | Math       |
| B       | English    |
| C       | Math       |
| D       | Biology    |
| E       | Math       |
| F       | Computer   |
| G       | Math       |
| H       | Math       |
| I       | Math       |
+---------+------------+

应该输出:

代码语言:txt
复制
+---------+
| class   |
+---------+
| Math    |
+---------+

Note:

学生在每个课中不应被重复计算。

解题思路

此题主要考察队group的使用。容易忽略的一点就是对学生去重的忽略。

解题答案

字表查询

代码语言:txt
复制
select class from 
(select class, count(distinct student) as ct from courses group by class) as a
where ct >=5

group+having组合使用

代码语言:txt
复制
SELECT CLASS
	FROM COURSES
	GROUP BY CLASS							
	HAVING COUNT(DISTINCT STUDENT) >= 5;

对distinct尤为注意。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目表述
  • 解题思路
  • 解题答案
  • 字表查询
    • group+having组合使用
    相关产品与服务
    云数据库 SQL Server
    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档