Tôi có một bảng với các lược đồ sau:Tạo một truy vấn để lấp đầy những khoảng trống trong một bảng do dữ liệu xấu
DateTime [Creation Date] PK
int [Data]
Dữ liệu cột có giá trị đến từ một cảm biến, một cái gì đó như thế này:
123
225
354
578
0
2151
2331
0
2555
2678
Như bạn có thể thấy giá trị luôn tăng.
Do sự cố trong cảm biến, thỉnh thoảng chúng tôi nhận được giá trị 0 giữa các giá trị hợp lệ. Điều này đang tạo ra cho chúng tôi một số vấn đề khi chúng tôi cố gắng sử dụng dữ liệu để chúng tôi muốn lấp đầy khoảng trống 0 với một cái gì đó. Lý tưởng nhất là chúng tôi muốn đặt giá trị trung bình giữa giá trị trước đó và giá trị sau, nếu điều này là không thể, chúng tôi muốn lặp lại giá trị trước đó.
Điều này có thể thực hiện được chỉ với một truy vấn không?
Xin cảm ơn trước.
Có đúng là giả định rằng bạn muốn thực hiện '1' điền 0 với mức trung bình trước khi đăng 2 bản ghi trước khi 2 bản ghi không phải là 0 không? '2'.Nếu không (= nếu có số 0 liên tiếp), hãy điền vào bằng giá trị ghi trước? – bonCodigo
@bonCodigo: đúng. Tất cả các số 0 liên tiếp nên được xử lý như một khoảng trống đặt trên tất cả chúng cùng một giá trị (giá trị trung bình giữa giá trị có sẵn cuối cùng và giá trị sau). Tôi sẽ chỉnh sửa câu hỏi để làm cho nó rõ ràng hơn. –
Phiên bản SQL-Server nào? –