[英]MySql Select Statement that should return a unique row
我在table1中具有以下列名稱 , rank和created_date 。
我想要
SELECT
name,
rank for latest created_date,
latest created_date,
difference between rank current created_date & previous date
FROM
table1
每個created_date每人只有一條記錄。
輸出應為:
Sam 15 2011/10/05 -3
謝謝你的幫助。
SELECT
name,
rank,
created_date,
rank - (
SELECT rank FROM table1 AS bar
WHERE bar.created_date < foo.created_date
ORDER BY created_date DESC
LIMIT 1
) AS diff
FROM table1 AS foo
ORDER BY created_date DESC
LIMIT 1
編輯:重新閱讀您的問題,我想您希望每人獲得一個輸出行,並計算該人的最后兩條記錄之間的差。 如果是這樣,則需要一個稍微復雜的解決方案:
SELECT
name,
rank,
created_date,
rank - (
SELECT rank FROM table1 AS bar
WHERE bar.name = foo.name AND bar.created_date < foo.created_date
ORDER BY created_date DESC LIMIT 1
) AS diff
FROM table1 AS foo
NATURAL JOIN (
SELECT name, MAX(created_date) AS created_date FROM table1
GROUP BY name
) AS blah
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.