Giới hạn kết quả MSSQL một cách linh hoạt

lập trình


Xin chào tất cả mọi người, tôi đang suy nghĩ về một điều gì đó có thể tôi đang thiếu một giải pháp rõ ràng.
Tôi có cơ sở dữ liệu lớn bằng mssql và tôi đang sử dụng Grafana.
Để truy xuất một phần lớn lịch sử, tôi muốn giới hạn động các kết quả trả về trong truy vấn của mình.

Những gì tôi đã thử:

Tôi có nhật ký mỗi giây để có thể nhận được tổng số hàng bằng cách:

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

Bây giờ tôi muốn lấy từng hàng thứ n để lấy một chuỗi dữ liệu thô.
hàng thứ n là tỷ lệ phần trăm của @TotalRows. Trong trường hợp của tôi, tôi muốn tính 1000000 (số lượng hàng tối đa)/@TotalRows

Truy vấn của tôi bây giờ trông như thế này

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

Tôi đang xem xét nhiều cách tiếp cận khác nhau nhưng tôi thực sự chưa tìm được cách nào phù hợp

Giải pháp 1

Sử dụng truy vấn sql động – ví dụ tại đây Thực thi các lệnh SQL động trong SQL Server[^] hoặc ở đây – Máy chủ SQL SQL động[^]

コメント

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