mysql:选择最后一条记录id为的组的count

3htmauhk  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(302)

这是我的table logs :

id    package    log
====================
0     first      log0
1     first      log1
2     second     log2

我希望查询结果如下:

package    count    last_log_id
===============================
first      2        1
second     1        2

到目前为止,我的搜索结果是:

SELECT package, COUNT(*) FROM logs GROUP BY package

这有助于我按包裹计算每组的数量。

SELECT a1.package, COUNT(*),a1.id 
FROM logs a1 LEFT JOIN logs a2 
ON (a1.package = a2.package AND a1.id < a2.id) 
WHERE a2.id IS NULL 
GROUP BY a1.package

这有助于我获得最后一个日志的id,但计数是错误的!

package    count    last_log_id
===============================
first      1        1
second     1        2
nzk0hqpo

nzk0hqpo1#

我认为你的第一次尝试是正确的,你可以使用 MAX 函数查找最新日志 id 对于每个 Package :

SELECT
    package,
    COUNT(*) AS count,
    MAX(id) AS last_log_id
FROM logs
GROUP BY package;

相关问题