mysql - 我的查询显示 heidisql 错误,不知道如何修复

标签 mysql sql heidisql

SQL 错误 (1055):SELECT 列表的表达式 #2 不在 GROUP BY 子句中,并且包含非聚合列“a.room id”,该列在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by 不兼容

SELECT hotel_id,room_id,room_number,MAX(a.tc) AS "Count",MAX(tp) AS   "MostProfit" FROM
(SELECT hotel_id,rooms.room_id,room_number,COUNT(rooms.room_id) AS  "tc",SUM(room_price) AS "tp" FROM rooms JOIN bookings 
ON rooms.room_id = bookings.room_id
GROUP BY rooms.room_id) a GROUP BY hotel_id

trying to get the rooms of hotels that got the most profit in a query

最佳答案

错误消息意味着您需要将 group by 子句转换为

GROUP BY hotel_id, room_id, room_number

因为其他列tctp是聚合的,不需要包含在分组依据列表中,而room_idroom_number 不是。

关于mysql - 我的查询显示 heidisql 错误,不知道如何修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55554097/

相关文章:

sql - 在 MySQL 中用一个公共(public)键连接两个表

sql - 违反 - 找不到父键错误

sql - 在大表上使用 OFFSET 优化查询

mysql - 比较同一个 SQL 表中的 2 列

mysql - 无法使用nodejsexpress将大型PDF文件上传到mysql

php - 使用 PHP 注册表中的单选按钮同意或不同意条款和条件

sql - PostGIS 多个表的交集

php - mysql 插入...选择

MySQL 排序规则不匹配

mysql - 从 mysql 中的表中选择不同的表项