我有一個新的數據定期更新一個相當大的表樣的,看起來像這樣的最大區別:Mysql的選擇行
id | name | c1 | c2 | c3 | c4 | time
-------------------------------------------------
1 | miley | 23 | 11 | 21 | 18 | 2013-01-13 20:26:25
2 | john | 31 | 29 | 23 | 27 | 2013-01-13 20:26:25
3 | steve | 44 | 31 | 33 | 35 | 2013-01-13 20:26:25
4 | miley | 34 | 44 | 47 | 48 | 2013-01-14 08:26:25
5 | john | 27 | 53 | 49 | 52 | 2013-01-14 08:26:25
6 | steve | 27 | 62 | 50 | 64 | 2013-01-14 08:26:25
7 | miley | 44 | 54 | 57 | 87 | 2013-01-14 20:26:25
8 | john | 37 | 93 | 59 | 62 | 2013-01-14 20:26:25
9 | steve | 85 | 71 | 87 | 74 | 2013-01-14 20:26:25
...etc
我需要一個查詢來發現誰的最大區別每個每天列。 (例如14日 - 史蒂夫有c1和c3增幅最大,約翰有c2,麥莉有c4)。每個人的數字都在不斷增加,因此可以假定任何人在任何一天的第一次入場時間總是少於他們當天的最後一次入場時間。
我已經嘗試了幾個小成功的查詢,並沒有太多的繼續,如果有人能夠至少指出我在正確的方向嗎?
理想情況下,所需的輸出將是包含名稱和差異增加幅度最大的每行數組。我不確定所有這些都可以在一個查詢中完成,但我真正需要的是每個專欄增加幅度最大的人員的姓名以及他們的區別。
。
擊穿
我需要搶在14日的第一和最後一個條目的每個人(ID:4至9);比較它們的c1值之間的差異,返回具有最大差異的人的姓名。重複c2,c3,& c4。
我至今感謝orangecrush,只是試圖獲得1列:(錯誤:無效使用組功能)
"SELECT nm, diff_c1 FROM (
SELECT NAME nm, MAX(c1) - MIN(c1) DIFF_C1 FROM TABLE AS a
WHERE `time` > DATE_SUB(now(), INTERVAL 1 DAY)
GROUP BY NAME) AS c
WHERE diff_c1 = (
(SELECT max(MAX(c1) - MIN(c1)) FROM TABLE AS b
WHERE `time` > DATE_SUB(now(), INTERVAL 1 DAY) GROUP BY NAME)
)"
什麼是您想要的輸出? –
我注意到,14日約翰在c1和c3上的差異最大。 – hjpotter92
編輯我的問題,包括輸出,抱歉,如果我不清楚我不完全確定我需要在這裏使用什麼樣的查詢 –