ID  POSITION    EXPERIENCE  SALARY
1   top               90    1500
2   bottom           100    1500
3   top               90    750
4   left              90    1000
5   right            100    1300
6   top               90    1500
7   left              80    2000
8   top               80    1000
9   bottom           100    2000
10  left             100    2000

这就是我的餐桌服务,我们可以看到,最高体验是100. 我需要写一个查询,通过位置(左、右、上、下)在每个组中找到100个经验的出现次数.

所以我写道:

select position,count(*)
from service
group by position
having experience=(select max(experience) from service);

预期yields :-

POSITION  COUNT(*)
bottom         2 
left           1
right          1
top            0

但, 它给了我一个错误的说法:"不是按表情分组"

我的逻辑是,首先我将其分组,然后使用HAVING子句计算每个组中经验等于max的元组.经验.

推荐答案

使用sum:

select position, sum(experience = 100) from tbl group by position

See fiddle.

Mysql相关问答推荐

带负数的MySQL子字符串_索引

了解MySQL_stmt_BIND_NAMED_Param()-MySQL C API

查询具有JSON对象数组的列时,JSON_CONTAINS的MySQL语法错误

使用Workbench时如何添加mysqldump配置标志

为什么用PyMySQL构建的json返回结果会出现重复?

在MySQL查询中查找和替换表内的值

将递归 CTE 结果合并到辅助 SQL Select

如何更新一个巨大的表的 50k 行?

MySQL 可以用于将列表排序为三分之三吗?

完全匹配 IN 子句中的所有值

如何在 mysql 中获取 Day Wise 的平均值?

从多到多表中 Select 数据而无需重复

组平SQL查询结果

Django中的MYSQL查询等效

如果在表中多次发现 a 列中的相同值,则排除所有行

估计行数 SQL

PHP,MySQL 错误:列计数与第 1 行的值计数不匹配

使用 Java 通过 SSH 连接到远程 MySQL 数据库

如何从命令行调用带有参数的mysql存储过程?

在 PHP 中运行 MySQL *.sql 文件