专栏首页八点半技术站「数据库」sql刷题(No.4)

「数据库」sql刷题(No.4)

题目一:

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

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

例如表如下:

解答方法:

这里给大家提供 2 种解答方式 ,也有其他写法~~~(以下解答方式,已经过测试

第一种:

使用 Group By 和 子查询 的方式

先统计每门课程的学生数量,再从中选择超过 5 名学生的课程。

SELECT
    class
FROM
    (SELECT
        class, COUNT(DISTINCT student) AS num
    FROM
        courses
    GROUP BY class) AS temp_table
WHERE
    num >= 5

注意:

(1)使用 DISTINCT 防止在同一门课中学生被重复计算。

(2)COUNT(student) 不能直接在 WHERE 子句中使用,这里将其重命名为 num。

对照上述sql,则正确的输出为:

第二种:

使用 Group By 和 Having 的方式

GROUP BY 子句后使用 HAVING 条件是实现子查询的一种更加简单直接的方法。

SELECT
    class
FROM
    courses
GROUP BY class
HAVING COUNT(DISTINCT student) >= 5

注意:group by 按照课程排序,count 计算的是每个课程的学生数量。

输出结果同上图。

结尾总结:

这 1 道题类型评定:简单类型 。主要就是利用 Group by 、子查询、Having 方式去搜索找到,这里我们需要特别注意上述写着 “ 注意 ” 的词汇。看了这里,想必你又学习了一小课,继续加油,持续下去。

本文分享自微信公众号 - 八点半技术站(gtcarry),作者:八点半技术站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 拆解 Redis 持久化 的工作原理

    Hello 各位 ,我是公号「八点半技术站」的创作者 - Bruce.D (姓氏:豆)。

    八点半的Bruce、D
  • 教你 Linux 免密登录配置

    这篇再来一个实战内容 - 免密登录,配置ok后,就可以直接通过 ssh+服务器名 就能连接到我们远程服务器了。

    八点半的Bruce、D
  • 网络优化中怎么减轻蜘蛛的抓取?

    一般来说,让搜索引擎捕获和索引更多的内容往往是seo们头疼的问题。没有包容和索引,就谈不上排名。特别是对于一个具有一定规模的网站来说,要使网站完全被收录是一项相...

    八点半的Bruce、D
  • gdb调试多线程 如何解死锁问题

    基础_多线程 Q1 gdb调试多线程 如何解死锁问题? A1 说明:排版不是很好可以直接查看原文链接 gdb基本用法 info threads(show al...

    程序员小王
  • 【Java入门提高篇】Day7 Java内部类——局部内部类

      今天介绍第二种内部类——局部内部类。   局部内部类是什么?顾名思义,那就是定义在局部内部的类(逃)。开玩笑的,局部内部类就是定义在代码块、方法体内、作用域...

    弗兰克的猫
  • MySQL UNSIGNED和ZEROFILL属性

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    SmileNicky
  • 学界 | 中科大与微软提出Adversarial-NMT:将生成对抗网络用于神经机器翻译

    选自arxiv 作者:Lijun Wu, Yingce Xia 等 机器之心编译 参与:吴攀 生成对抗网络(GAN)与神经机器翻译(NMT)是当前人工智能研究的...

    机器之心
  • 对抗神经机器翻译:GAN+NMT 模型,中国研究者显著提升机翻质量

    【新智元导读】中山大学、中国科技大学、微软亚洲研究院与广东省信息安全技术重点实验室合作,提出了一种新的“对抗神经机器翻译”(Adversarial-NMT) 模...

    新智元
  • Java进阶07 嵌套类

    到现在为止,我们都是在Java文件中直接定义类。这样的类出现在包(package)的级别上。Java允许类的嵌套定义。 这里将讲解如何在一个类中嵌套定义另一个类...

    Vamei
  • 散列表

    是根据键 (Key) 而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度...

    周三不加班

扫码关注云+社区

领取腾讯云代金券