Je dois appliquer deux fonctions d'agrégat successives à un ensemble de données (la somme d'une série de moyennes), ce qui est facile et routinier avec les expressions de table communes dans SQL Server ou un autre SGBD prenant en charge les CTE . Malheureusement, je suis actuellement bloqué avec SQLite qui ne supporte pas les CTE. Existe-t-il une alternative ou une solution de contournement permettant d'obtenir le même résultat dans SQLite sans effectuer deux requêtes et en regroupant les résultats dans le code? Pour ajouter un peu plus de détails, je ne pense pas que cela puisse être facilement fait avec les vues car le premier ensemble de valeurs d'agrégat doit être récupéré sur la base d'une clause WHERE avec plusieurs paramètres. Par exemple,Fonctionnalité d'expression de table commune dans SQLite
SELECT avg(elapsedTime)
FROM statisticsTable
WHERE connectionId in ([lots of values]) AND
updateTime > [startTime] AND
updateTime < [endTime]
GROUP BY connectionId
Et puis j'ai besoin de la somme de ces moyennes.
j'ai ajouté une autre réponse que (je crois) permet de résoudre ce problème sans utiliser CTE. –
Après avoir examiné certaines des autres questions que vous avez posées sur SO, je crois qu'ils peuvent être résolus en utilisant une sous-requête ou une technique de vue en ligne. À titre d'exercice, vous pouvez essayer de réécrire ces requêtes sans CTE. Bien que je ne suggère pas de laisser ces nouvelles requêtes dans votre code de production, il pourrait être utile d'apprendre une nouvelle technique pour résoudre des problèmes similaires dans des SGBDR moins complets. –
Les CTE viennent d'être ajoutés à SQLite. http://www.sqlite.org/lang_with.html – schlenk