mysql - 仅获取 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)
解决方案
你需要以下 -
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
推荐阅读
- database - 有没有办法在搜索页面(postgres)上首先显示整个数据库?
- javascript - 单击另一个页面上的链接时如何单击相应的选项卡?
- java - 在关系数据库中,“父表”是否应该引用“子表”或相反,这有关系吗?
- c# - 使用实体框架无法正常工作的数据网格视图组合框
- mqtt - 如何在 MQTT 中实现请求?
- python - Python 请求:处理 HTTP 状态“待处理”
- python - keras 强化学习 - 具有多个输出的动作
- python - 稀疏矩阵减法
- java - Spring Boot,MongoDB,Pageable,按对象中的自定义方法排序
- c - C中的编码和解码