Có lẽ có một giải pháp khá đơn giản cho vấn đề của tôi, nhưng tôi đang gặp khó khăn khi xây dựng một cụm từ tìm kiếm tốt cho nó. Tôi có một bảng có chứa dấu thời gian và số lượng:Tìm sự gián đoạn từ một bảng SQL
2013-08-15 14:43:58.447 5
2013-08-15 14:44:58.307 12
2013-08-15 14:45:58.383 14
2013-08-15 14:46:58.180 0
2013-08-15 14:47:58.210 4
2013-08-15 14:48:58.287 6
2013-08-15 14:49:58.550 12
2013-08-15 14:50:58.440 2
2013-08-15 14:51:58.390 5
Như bạn có thể thấy, số lần tăng và sau đó được làm trống một lần trong một thời gian. Tìm kiếm các hàng mà count = 0 rất dễ, nhưng đôi khi số đếm được tăng lên trước khi số không được ghi lại. Vào lúc 14:49 đếm là 12, sau đó nó được đặt lại về 0 và tăng lên 2 trước lần đăng nhập tiếp theo lúc 14:50.
tôi cần phải liệt kê các timestamps nơi số lượng ít hơn so với số trước:
2013-08-15 14:46:58.180 0
2013-08-15 14:50:58.440 2
tôi bắt đầu để thực hiện một tham gia vào bảng riêng của mình, để so sánh hai hàng nhưng SQL sớm trở nên rất lộn xộn.
Nếu bạn có thể đặt chúng trong một bảng với một chỉ số trong đúng thứ tự, việc tham gia phải rất đơn giản. –
Bảng được lập chỉ mục trên dấu thời gian, nhưng tôi thực sự không thể nhìn thấy giải pháp đơn giản. – Anlo
Thêm một bảng nơi dòng 1 có số 1 và dòng 2 có số 2 vv. Sau đó, bạn chỉ có thể chọn vị trí 'T2.id = T1.id + 1' và' T2.num