الحد من نتائج MSSQL ديناميكيًا


مرحبًا جميعًا، أنا أحني رأسي على شيء قد يكون له حل واضح أفتقده.
لدي قاعدة بيانات كبيرة في mssql وأستخدم Grafana.
لاستعادة جزء كبير من التاريخ، أرغب في تقييد النتائج التي يتم إرجاعها في استعلامي ديناميكيًا.

ما حاولت:

لدي سجل كل ثانية حتى أتمكن من الحصول على إجمالي عدد الصفوف عن طريق:

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

الآن أريد أن آخذ كل صف n للحصول على سلسلة من البيانات التقريبية.
الصف n هو نسبة مئوية منTotalRows. أنا حالتي وأود حساب 1000000 (الحد الأقصى لعدد الصفوف) /TotalRows

يبدو استعلامي الآن هكذا

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

لقد كنت أبحث في أساليب مختلفة، ولكن لم أتمكن من العثور على النهج المناسب حتى الآن

الحل 1

استخدم استعلامات SQL الديناميكية – أمثلة هنا تنفيذ أوامر SQL الديناميكية في SQL Server[^] أو هنا – SQL خادم SQL الديناميكي[^]

コメント

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