MSSQL परिणामों को गतिशील रूप से सीमित करें


सभी को नमस्कार, मैं किसी ऐसी चीज़ पर अपना सिर झुका रहा हूँ जिसका कोई स्पष्ट समाधान हो सकता है, मुझे याद आ रहा है।
मेरे पास mssql में एक बड़ा डेटाबेस है और मैं Grafana का उपयोग कर रहा हूँ।
इतिहास का एक बड़ा हिस्सा पुनर्प्राप्त करने के लिए मैं अपनी क्वेरी में लौटाए गए परिणामों को गतिशील रूप से सीमित करना चाहूंगा।

मैंने क्या प्रयास किया है:

मेरे पास हर सेकंड एक लॉग है ताकि मैं पंक्तियों की कुल मात्रा प्राप्त कर सकूं:

एसक्यूएल
DECLARE @TotalRows REAL;
SET @TotalRows = DATEDIFF (SECOND, $__timeFrom(), $__timeTo())

अब मैं रफ डेटा की एक श्रृंखला प्राप्त करने के लिए प्रत्येक nवीं पंक्ति लेना चाहता हूं।
nवीं पंक्ति @TotalRows का प्रतिशत है। मेरे मामले में मैं 1000000 (पंक्तियों की अधिकतम मात्रा) / @TotalRows की गणना करना चाहूंगा

मेरी क्वेरी अब इस तरह दिखती है

एसक्यूएल
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 कमांड निष्पादित करें[^] या इधर – एसक्यूएल सर्वर डायनेमिक एसक्यूएल[^]

コメント

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