Chủ đề của câu hỏi không phải là rất giải thích, xin lỗi vì điều đó.Sql để tìm timediff giữa hai hàng dựa trên ID
Vì vậy, câu hỏi theo sau: Tôi có cấu trúc cơ sở dữ liệu như dưới đây, nơi pk là khóa chính, id là cái gì đó là nhiều cho nhiều hàng.
+------+------+---------------------+
| pk | id | value |
+------+------+---------------------+
| 99 | 1 | 2013-08-06 11:10:00 |
| 100 | 1 | 2013-08-06 11:15:00 |
| 101 | 1 | 2013-08-06 11:20:00 |
| 102 | 1 | 2013-08-06 11:25:00 |
| 103 | 2 | 2013-08-06 15:10:00 |
| 104 | 2 | 2013-08-06 15:15:00 |
| 105 | 2 | 2013-08-06 15:20:00 |
+------+------+---------------------+
Điều gì thực sự là cần phải nhận được là, giá trị chênh lệch giữa hai hàng đầu tiên (mà được sắp xếp theo giá trị) cho mỗi nhóm (nơi nhóm là bởi id). Vì vậy, theo cấu trúc trên, chúng tôi cần timediff (value100, value99) [đó là cho id 1 nhóm] và timediff (value104, value103) [đó là cho id 2 nhóm]
tức là chênh lệch giá trị của thời gian đặt hàng theo giá trị cho hai hàng đầu tiên trong mỗi nhóm.
Một cách tôi có thể nghĩ là thực hiện 3 lần tự tham gia (hoặc 3 truy vấn phụ) để tìm số đầu tiên trong 2 người trong số họ và truy vấn thứ ba trừ nó. Bất kỳ đề xuất?
bạn có cần nó trong một lệnh SQL không? bạn có thể (hoặc bạn muốn) sử dụng một thủ tục được lưu trữ? – Barranka
Sẽ yêu giải pháp sql đơn – amitchhajer
Chỉ cần cập nhật ví dụ của tôi .. Vui lòng đánh dấu câu trả lời là giải pháp cho vấn đề của bạn .. nếu có ai phù hợp với – lordkain