我有以下數據集:Mysql的加入 - 基於兩個最大濾波器結果值
+----+------------+------+-------+----------+
| id | date | week | time | price |
+----+------------+------+-------+----------+
| 1 | 2015-05-01 | 24 | 13:25 | 1.251325 |
| 2 | 2015-05-01 | 24 | 14:25 | 1.251256 |
| 3 | 2015-05-02 | 24 | 15:25 | 1.251715 |
| 4 | 2015-05-02 | 24 | 16:25 | 1.251588 |
| 5 | 2015-05-10 | 25 | 17:25 | 1.251347 |
+----+------------+------+-------+----------+
我用下面的代碼來獲取最新的價格在每一天,它提供了完美的結果結束:
SELECT t.id, t.date, t.time, t.balance
FROM db1 t JOIN
(SELECT tt.date, MAX(tt.time) as 'maxtime'
FROM db1 tt
GROUP BY tt.date
) m
ON m.maxtime = t.time AND t.date = m.date;
但是,現在我還想要查詢傳遞每週的最新價格。因此,我需要在每週內查找最新日期,然後查找最長時間。我想這樣的事情,但是這顯然是不正確的語法:
SELECT t.id, t.date, t.time, t.balance
FROM db1 t JOIN
(SELECT tt.date, MAX(tt.time) as 'maxtime'
FROM db1 tt
GROUP BY tt.date
AND
SELECT tt.week, MAX(tt.date) as 'maxdate'
FROM db1 tt
GROUP BY tt.week
) m
ON m.maxtime = t.time AND m.week = t.week AND m.maxdate = t.date;
的問題是如何鏈接「分組依據」基於兩種不同的兩個條件。我正在尋找的結果應該如下所示:
+----+------------+------+-------+----------+
| id | date | week | time | price |
+----+------------+------+-------+----------+
| 4 | 2015-05-02 | 24 | 16:25 | 1.251588 |
| 5 | 2015-05-10 | 25 | 17:25 | 1.251347 |
+----+------------+------+-------+----------+
非常感謝您提前給予您的幫助。
作爲一個建議,MySQL有一個'DATETIME'對象可以用來避免有兩個單獨的列。 – AdamMc331