Limiter les résultats MSSQL de manière dynamique

la programmation


Bonjour à tous, je penche la tête sur quelque chose qui pourrait avoir une solution évidente qui me manque.
J’ai une grosse base de données en mssql et j’utilise Grafana.
Pour récupérer une grande partie de l’historique, j’aimerais limiter dynamiquement les résultats renvoyés dans ma requête.

Ce que j’ai essayé :

J’ai un journal toutes les secondes pour pouvoir obtenir le nombre total de lignes :

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

Maintenant, je veux prendre une nième ligne pour obtenir une série de données approximatives.
la nième ligne est un pourcentage de @TotalRows. Dans mon cas, je voudrais calculer 1 000 000 (le nombre maximum de lignes) / @TotalRows

Ma requête ressemble maintenant à ceci

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

J’examinais différentes approches, mais je n’arrive pas encore à trouver celle qui me convient.

Solution 1

Utilisez des requêtes SQL dynamiques – exemples ici Exécuter des commandes Dynamic SQL dans SQL Server[^] ou ici – SQL Server SQL dynamique[^]

コメント

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