我正在尝试将两个SQL语句合并为一个,但我遇到了full_group_only的GROUP BY错误,我理解为什么,但不知道如何解决。
在第一个查询中,我只是获取每个项目的操作数,而在第二个查询中,我收到了最新的操作。
假设一个简单的设置:
actions (id, item_id, description)
items (id, name)
使用两个查询
SELECT item_id, COUNT(*) AS actions_number FROM actions GROUP BY item_id
SELECT * FROM actions WHERE id in (SELECT max(id) FROM actions GROUP BY item_id)
如何轻松地将这两个陈述合并为一个?
答案 0 :(得分:1)
这是你想要的吗?
SELECT
a.*, b.actions_number
FROM
actions a
INNER JOIN
(SELECT
MAX(id) id, COUNT(*) actions_number
FROM
actions
GROUP BY item_id) b ON a.id = b.id;