簡體   English   中英

MySQL:選擇具有最后一條記錄的ID的組的計數

[英]MySQL: Select count of a group with the id of last record

這是我的表,稱為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

我認為您的第一次嘗試是正確的,您可以使用MAX函數查找每個軟件包的最新日志id

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM