[英]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.