Batasi hasil MSSQL secara dinamis

pemrograman


Halo semuanya, saya sedang memikirkan sesuatu yang mungkin memiliki solusi jelas yang saya lewatkan.
Saya memiliki database besar di mssql dan saya menggunakan Grafana.
Untuk mengambil sebagian besar sejarah, saya ingin membatasi secara dinamis hasil yang dikembalikan dalam kueri saya.

Apa yang saya coba:

Saya memiliki log setiap detik sehingga saya bisa mendapatkan jumlah total baris dengan:

SQL
DECLARE @TotalRows REAL;
SET @TotalRows = DATEDIFF (SECOND, $__timeFrom(), $__timeTo())

Sekarang saya ingin mengambil setiap baris ke-n untuk mendapatkan serangkaian data kasar.
baris ke-n adalah persentase dari @TotalRows. Dalam kasus saya, saya ingin menghitung 10.00000 (jumlah maksimum baris) / @TotalRows

Permintaan saya sekarang terlihat seperti ini

SQL
SELECT DateTime as time,
Value1 as "Value1",
Value2 as "Value2",
Value3 as "Value3"
FROM CKLog
WHERE DateTime > $__timeFrom() AND  DateTime < $__timeTo() 
ORDER BY DateTime ASC

Saya sedang mencari pendekatan yang berbeda, tetapi saya belum menemukan pendekatan yang cocok

Solusi 1

Gunakan kueri sql dinamis – contoh di sini Jalankan perintah SQL Dinamis di SQL Server[^] atau di sini – SQL Server Dinamis SQL[^]

コメント

タイトルとURLをコピーしました