首页 > 解决方案 > 仅获取 customer_ID 的一个值 where 多行 where

问题描述

大家好,这是我的查询 - 如果我运行这个,我会得到多个客户 ID,但我只想选择一个客户 ID

SELECT payments.customer_id,
       payments.reason,
       payments.date
FROM payments  
WHERE reason like '%error%' 
ORDER BY payments.date DESC

这是我尝试使用 group by 时收到的错误消息

Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'reason' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (errno 1055) (sqlstate 42000)

标签: mysqlgroup-bydbvisualizermysql-error-1055

解决方案


你需要以下 -

SELECT p.customer_id,
       p.reason,
       MAX(p.date) max_date
FROM payments p
WHERE p.reason like '%error%' 
GROUP BY p.customer_id,
         p.reason
ORDER BY max_date DESC

推荐阅读