我想計算它們對應的 ID 的 endTime 和 startTime 之間的差異,并顯示 ID 和持續時間(計算欄位),而不必在 SQL 中創建新表。
我試過訂購表格并使用 LAG 和 LEAD 但這會導致所有行的差異。
| ID | 型別時間 | 約會時間 |
|---|---|---|
| 1 | 開始時間 | 2022 年 4 月 26 日,下午 12:38 |
| 1 | 時間結束 | 2022 年 4 月 26 日,下午 12:39 |
| 2 | 開始時間 | 2022 年 4 月 26 日,下午 12:45 |
| 2 | 時間結束 | 2022 年 4 月 26 日下午 12:49 |
| 3 | 開始時間 | 2022 年 4 月 28 日晚上 11:24 |
| 3 | 時間結束 | 2022 年 4 月 28 日晚上 11:30 |
結果應如下所示:
| ID | 持續時間(秒) |
|---|---|
| 1 | 60 |
| 2 | 240 |
| 3 | 360 |
uj5u.com熱心網友回復:
使用自聯接:
SELECT t1.id, TIMESTAMPDIFF(second, t1.datetime, t2.datetime) AS duration
FROM yourTable AS t1
JOIN yourTable AS t2 ON t1.id = t2.id
WHERE t1.typetime = 'startTime' AND t2.typetime = 'endTime'
uj5u.com熱心網友回復:
假設每個 ID 都有一個開始和結束時間,您可以使用 min 和 max 函式,如下所示:
SELECT id, TIMESTAMPDIFF(SECOND, MIN(DateTime), MAX(DateTime)) AS duration
FROM
table_name
GROUP BY id
ORDER BY id
查看演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/513604.html
標籤:mysqlsql数据库
