簡體   English   中英

MySql Select語句應返回唯一行

[英]MySql Select Statement that should return a unique row

我在table1中具有以下列名稱rankcreated_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.

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