我有一張桌子,看起來像這樣:
| 序列號 | 傳感器編號 | 修改日期 |
|---|---|---|
| 1234 | 12EE56423 | 2022-04-06 |
| 4567 | 12EE56423 | 2018-06-12 |
| 6789 | AD3FF0C44 | 2018-03-08 |
| 9101 | AD3FF0C44 | 2019-06-07 |
從具有相同 sensorNr 的行中,我只想選擇具有較新 ModifyDate 的行,因此結果應如下所示:
| 序列號 | 傳感器編號 | 修改日期 |
|---|---|---|
| 1234 | 12EE56423 | 2022-04-06 |
| 9101 | AD3FF0C44 | 2019-06-07 |
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
在 MySQL 8 上,我們可以ROW_NUMBER在這里使用:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY sensorNr ORDER BY ModifyDate DESC) rn
FROM yourTable
)
SELECT serialNr, sensorNr, ModifyDate
FROM cte
WHERE rn = 1;
uj5u.com熱心網友回復:
你可以
SELECT
serialNr, sensorNr, ModifyDate
FROM
your_table_name_goes_here
GROUP BY
sensorNr
ORDER BY
ModifyDate DESC
它將為您提供每個唯一的一行,sensorNr并且 order byModifyDate將確保 和 的值ModifyDate將serialNr是“最新的”
db小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480899.html
