排除最高和最低计数的MySQL查询

标签 mysql

我在 MySql 中有下表

Number
1
2
3
2
3
4
4
4

我想按计数获取数字,但排除了最高和最低计数。应该是这样的结果

Number  Count
2       2
3       2

请帮我解决这个问题。

最佳答案

试试这个:

SELECT number, COUNT(*) cnt
FROM mytable
GROUP BY number
HAVING cnt <> (SELECT COUNT(*)
               FROM mytable
               GROUP BY number
               ORDER BY COUNT(*) LIMIT 1)
       AND               

       cnt <> (SELECT COUNT(*)
               FROM mytable
               GROUP BY number
               ORDER BY COUNT(*) DESC LIMIT 1)

HAVING 子句中使用的两个子查询返回最小和最大计数。因此,HAVING 子句的两个谓词过滤出计数最高和最低的组。

关于排除最高和最低计数的MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36572081/

相关文章:

mysql - 显示监管 3 名或更多员工的主管

java - MySQL 查询将多行转换为一行

mysql - 从存储的点创建几何图形(例如 LineString())。 MySQL 空间

MySQL:无法创建表 './myhairdev/catalog_product_index_website.frm'(错误号:150)

MYSQL:使用另一个相关表中的值更新表

mysql - mysql 8.0 版本中的 hash() 函数

php - 如何从foreach中获取当前记录号?

MySQL EXPLAIN 自动解析

java - jdbi 抛出 SQLException : Unknown system variable 'tx_read_only'

php - Mysqli fetch 仅返回一个值