[英]Select last inserted records and grouping mysql
我有一張帶筆記的桌子。 下面是我的數據庫的一小部分數據樣本。
Id register_no name classification possibility
1 112 Ben Red 10%
2 112 Ben Red 10%
3 113 Ben Red 20%
4 112 Ben Amber 30%
5 112 Ben Amber 10%
6 113 Ben Amber 30%
7 113 Ben Red 10%
8 112 Ben Red 50%
對不起,我以錯誤的方式解釋了這個問題。
實際上我想要的是檢索每個register_no的最后一個插入記錄,因為sales_log表包含列表進度...
例如,Register_no 112在數據庫中有12條記錄,最后一條記錄是90%(它從10,40,60%進展,因此所有這些記錄都在數據庫中)
我想要的是得到90%的register_no 112等等......它不僅僅是一條記錄......大約有500個register_no,我想得到每個register_no的最后一個條目
希望這次有意義
您應該嘗試此查詢以獲取具有最大id
值的寄存器號的注釋:
SELECT n1.*
FROM notes n1
LEFT JOIN notes n2
ON (n1.register_no = n2.register_no AND n1.id < n2.id)
WHERE n2.id IS NULL;
來源: 檢索每組中的最后一條記錄
嘗試
SELECT * FROM (`sales_log`) WHERE 1 ORDER BY `id` DESC LIMIT 2
告訴msyql匹配'name = ben'永遠不會找到mandy的id 7
采用
SELECT * FROM sales_log WHERE `classification` = 'red' ORDER BY `Id` DESC LIMIT 2;
這應該工作:
SELECT data.*
FROM sales_log AS data
JOIN
(
SELECT MAX(Id) as Id
FROM sales_log
GROUP BY register_no
) AS newest
ON data.Id = newest.Id
結果:
'8', '112', 'Ben', 'Red', '50'
'7', '113', 'Ben', 'Red', '10'
編輯:我只看了@ Omesh的鏈接,顯然他發布的解決方案要快得多。 它產生與我的查詢完全相同的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.