Mysql 如何组合这两个SQL语句以避免分组错误?

Mysql 如何组合这两个SQL语句以避免分组错误?,mysql,Mysql,我试图将两条SQL语句合并为一条,但仅针对full_GROUP_遇到了分组错误,我理解原因,但不知道如何解决 在第一个查询中,我只是获取每个项目的操作数,在第二个查询中,我获取最新的操作数 假设一个简单的设置为: actions (id, item_id, description) items (id, name) 有两个问题 SELECT item_id, COUNT(*) AS actions_number FROM actions GROUP BY item_id SELECT *

我试图将两条SQL语句合并为一条,但仅针对full_GROUP_遇到了分组错误,我理解原因,但不知道如何解决

在第一个查询中,我只是获取每个项目的操作数,在第二个查询中,我获取最新的操作数

假设一个简单的设置为:

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)  
如何轻松地将这两条语句合并为一条?

这就是您想要的吗

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;

请看,在本例中,发布我创建的大量中断查询没有多大意义,而我所要做的只是创建一个工作查询,将上述两个查询组合在一起。请发布示例输入数据和预期输出。我没有看到上面的任何查询抛出完整的\u组\u仅相关的错误。您可以添加一个输出应该是什么样子的示例吗?基本上,您希望在同一个表(操作)上执行内部联接,但您为它们指定了不同的别名(例如a1和a2)。有些结果来自a1,有些来自a2。祝你好运我希望
SELECT*,COUNT(*)作为actions\u number FROM actions
,按项目id分组。因此,它将包含每个项目的
操作数
,以及最新操作的
数据。
(由于id是连续的,因此它在第二次查询中以max(id)获取最新操作)