Je souhaite obtenir une somme à partir d'une colonne, avec et sans condition. Le code que j'ai maintenant estOptimisation des agrégats avec et sans condition en ms sql
SELECT regular.id, regular.sum as regularsum, special.sum as specialsum FROM
(SELECT Sum(stuff) as sum, id FROM table
WHERE commonCondition = true
GROUP BY id) as regular
INNER JOIN
(SELECT Sum(stuff) as sum, id FROM table
Where commonCondition = true AND specialCondition = true
GROUP BY id) as special
ON regular.id = special.id
Qui fonctionne, mais semble très inefficace, pour ne pas dire moche. la table est assez grande, donc une optimisation serait la bienvenue. Comment puis-je écrire cela de façon plus efficace et plus efficace?
Avez-vous des index sur la table? – Thakur
Il y a un index sur id et sur specialCondition – Martijn