Maison >base de données >tutoriel mysql >Quelle est la manière la plus efficace de calculer les totaux cumulés dans SQL Server ?
La célébration fournit une méthode pratique pour effectuer de tels calculs dans Oracle et ANSI-SQL. Cependant, SQL Server n'a pas la flexibilité de gérer certains cas d'utilisation sur la mise en œuvre des clauses OVER
. OVER
Créez une table temporaire avec la même colonne que la table d'origine.
Les lignes de traitement de l'ordre des instructions peuvent ne pas toujours être les mêmes que la date de date.
UPDATE
Test des paramètres de données:
Méthode de test:
Test 1: requête d'enfant associée
<code class="language-sql">CREATE TABLE #t ( ord INT PRIMARY KEY, total INT, running_total INT ); SET NOCOUNT ON; DECLARE @i INT; SET @i = 0; BEGIN TRAN; WHILE @i < 10000 BEGIN INSERT INTO #t (ord, total) VALUES (@i, ABS(CHECKSUM(NEWID()) % 1000)); SET @i = @i + 1; END; COMMIT TRAN;</code>
Test 2: Cross -Connection
Test 3: curseur
<code class="language-sql">SELECT ord, total, (SELECT SUM(total) FROM #t b WHERE b.ord <= a.ord) AS RunningTotal FROM #t a ORDER BY a.ord;</code>
Test 4: Mettez à jour les compétences
<code class="language-sql">SELECT a.ord, a.total, SUM(b.total) AS RunningTotal FROM #t a CROSS JOIN #t b WHERE b.ord <= a.ord GROUP BY a.ord, a.total ORDER BY a.ord;</code>Grâce à l'efficacité de mise en œuvre des quatre méthodes ci-dessus, la meilleure pratique de calcul de l'accumulation dans SQL Server peut être obtenue. Il convient de noter que les performances réelles peuvent varier du volume de données et de la configuration du serveur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!