我有此表從我必須選擇最新的行中每個位置一列選擇最新的記錄組
| location | parameter | datetime | value |
---------------------------------------------------------------------
| Location 1 | P1 | 2017-09-13 05:00:00 | 0.68 |
| Location 1 | P2 | 2017-09-13 05:00:00 | 6 |
| Location 1 | P3 | 2017-09-13 06:00:00 | 19 |
| Location 1 | P4 | 2017-09-13 06:00:00 | 1 |
| Location 2 | P1 | 2017-09-13 05:00:00 | 0.1 |
| Location 2 | P2 | 2017-09-13 05:00:00 | 2 |
| Location 2 | P3 | 2017-09-13 06:00:00 | 26 |
| Location 2 | P5 | 2017-09-13 06:00:00 | 7.9 |
| Location 2 | P4 | 2017-09-13 07:00:00 | 0 |
| Location 3 | P1 | 2017-09-13 04:00:00 | 0.47 |
| Location 3 | P2 | 2017-09-13 05:00:00 | 1 |
| Location 3 | P3 | 2017-09-13 04:00:00 | 25 |
| Location 3 | P5 | 2017-09-14 05:00:00 | 3.8 |
---------------------------------------------------------------------
我曾嘗試以下查詢,但兩者都沒有返回每個位置的最新數據。
SELECT * FROM mytable WHERE
datetime in (SELECT max(datetime) FROM myTable Group by location)
group by location;
和
SELECT * FROM myTable AS t1
INNER JOIN
(
SELECT MAX(datetime) AS maxDate
FROM myTable
GROUP BY location
) AS t2 ON t1.datetime = t2.maxDate group by t1.location;
兩個查詢返回錯誤的數據位置2.
一旦做到這一點我也想在最新的日期相同,則查詢添加另一個條件按值排序desc並選擇最高值的記錄。
預期的輸出是
| location | parameter | datetime | value |
---------------------------------------------------------------------
| Location 1 | P3 | 2017-09-13 06:00:00 | 19 |
| Location 2 | P4 | 2017-09-13 07:00:00 | 0 |
| Location 3 | P5 | 2017-09-14 05:00:00 | 3.8 |
---------------------------------------------------------------------
但查詢我試圖返回錯誤的日期,地點2.
任何幫助表示讚賞。
你如何識別最新行如果兩個行具有相同的'datetime'? –
這並不重要,任何與每個位置的最新日期的行都會很好,但我想添加另一個條件,正如我在問題中提到的那樣。 – Ana
您是否也可以發佈預期的結果集?還優選包括樣本數據以及格式化文本而不是圖像。 –