mysql - 如何找到选择最少学生的类(class)名称

标签 mysql

有没有办法找到选择最少学生的类(class)名称?

非常感谢任何帮助。

SQL 模式:

Create table If Not Exists courses (student varchar(255), class varchar(255))
Truncate table courses
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')

表格:

+---------+------------+
| student | class      |
+---------+------------+
| A       | Math       |
| B       | English    |
| C       | Math       |
| D       | Biology    |
| E       | Math       |
| F       | Computer   |
| G       | Math       |
| H       | Math       |
| I       | Math       |
+---------+------------+

应该输出:

+---------+
| class   |
+---------+
| English |
+---------+
| Biology |
+---------+
| Computer|
+---------+

最佳答案

您可以使用 HAVING 子句来完成此操作:

SELECT 
  class
FROM 
  courses  
GROUP BY 
  class
HAVING 
  COUNT(*)=(
    SELECT 
      COUNT(*)
    FROM 
      courses  
    GROUP BY 
      class
    ORDER BY 
      COUNT(*) ASC
    LIMIT 1
  )

希望对您有所帮助,

关于mysql - 如何找到选择最少学生的类(class)名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55768431/

相关文章:

mysql - MySQL 队列是否插入/更新?

mysql - SQL 列表项不重复第一个

mysql - 扁平化 SQL 查询的响应

mysql - Rails 统计记录而无需再次查询

java - 读取数据库后在 Java 中捕获异常的正确方法

php - 具有定义的日期间隔的 MySQL 查询行

mysql - magento 模块中 observer.php 的用途是什么

php - 使用 phpMyAdmin 将使用长数字的电子表格导入 MySQL 的最佳方法

mysql - 将年时日期间隔转换为天数

php - 基于多个唯一列表构建 MYSQL 查询