当前位置: 首页 > article >正文

MYSQL——美团面试题

MYSQL——美团面试题

2023/3/27 美团二面

题目描述

Create table If Not Exists courses (student varchar(255), class varchar(255));

insert into courses (student, class) values ('A', 'Math');
insert into courses (student, class) values ('B', 'English');
insert into courses (student, class) values ('C', 'Math');
insert into courses (student, class) values ('D', 'Biology');
insert into courses (student, class) values ('E', 'Math');
insert into courses (student, class) values ('F', 'Computer');
insert into courses (student, class) values ('G', 'Math');
insert into courses (student, class) values ('H', 'Math');
insert into courses (student, class) values ('I', 'Math');

请列出所有超过或等于5名学生的课。
在这里插入图片描述

应该输出

+---------+
| class   |
+---------+
| Math    |
+---------+

题解

方法一:使用 GROUP BY 子句和子查询【通过】
思路:
先统计每门课程的学生数量,再从中选择超过 5 名学生的课程。

算法:
使用 GROUP BY 和 COUNT 获得每门课程的学生数量。
这里面最终的要就是分组,分组之后再抓取超过5名学生的科目。

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

在这里插入图片描述

方法二:

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

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

在这里插入图片描述


http://www.kler.cn/a/4002.html

相关文章:

  • 3. 后端验证前端Token
  • leetcode707-设计链表
  • RabbitMQ基础篇
  • Java定时任务不明原因挂掉(定时任务挂掉)以及建议
  • Python毕业设计选题:基于python的酒店推荐系统_django+hadoop
  • 【MySQL】数据库约束和多表查询
  • 2023选择网络安全,抓住时代机遇!
  • I.MX6ULL_Linux_驱动篇(32) 设备树GPIO驱动
  • Winform/Csharp中使用Linq的Where条件筛选、Select字段映射(左外连接并设置无匹配时默认值)、OrderBy(排序并自定义排序规则)
  • Excel2010(详细解析)
  • 动态内存函数malloc,calloc,realloc详解
  • 金色传说:SAP-ABAP-SAPLINK 零基础萌新/老鸟通用-SAPLINK最详细使用方式(附:神级SQL编辑器ZTOAD完整导入文件)
  • Web前端:什么是Angular?能做什么?
  • CSDN 编程竞赛四十期题解
  • 【LeetCode】栈和队列练习 4 道题
  • 广度优先寻路算法(一)
  • STM32输出PWM波控制电机转速,红外循迹避障智能车+L298N的详细使用手册、接线方法及工作原理,有代码
  • UniApp + SpringBoot 实现接入支付宝支付功能和退款功能
  • 【面试题系列】K8S面试题(二)
  • Java基础 -- 枚举类Enum
  • 走进小程序【一】什么是小程序?
  • 【蓝桥杯】​蓝桥杯——每日四道编程题(两道真题+两道模拟)​| 第 二 天
  • 【VB6|第17期】16进制颜色值与RGB值互相转换(含源码)
  • Node.js学习笔记——Node.js模块化
  • 一文彻底搞懂为什么OpenCV用GPU/cuda跑得比用CPU慢?
  • Python 十大开源Python库,看看你熟悉几个?