Comptage de conditions PostgreSQL : méthode d'optimisation
Lors du comptage des occurrences de données dans une table de base de données, les instructions conditionnelles peuvent sembler longues. Heureusement, PostgreSQL fournit une solution pratique et efficace.
Options d'agrégation de FILTRE
Pour PostgreSQL 9.4 et versions ultérieures, profitez de l'option d'agrégation FILTER pour une meilleure efficacité :
<code class="language-sql">SELECT category , count(*) FILTER (WHERE question1 = 0) AS zero , count(*) FILTER (WHERE question1 = 1) AS one , count(*) FILTER (WHERE question1 = 2) AS two FROM reviews GROUP BY 1;</code>
Syntaxe concise
Si la simplicité est votre priorité :
<code class="language-sql">SELECT category , count(question1 = 0 OR NULL) AS zero , count(question1 = 1 OR NULL) AS one , count(question1 = 2 OR NULL) AS two FROM reviews GROUP BY 1;</code>
Requête croisée
Pour gérer de grandes listes d'options et rechercher des performances supérieures, pensez à utiliser la fonction crosstab() :
<code class="language-sql">SELECT * FROM crosstab( 'SELECT category, question1, count(*) AS ct FROM reviews GROUP BY 1, 2 ORDER BY 1, 2' , 'VALUES (0), (1), (2)' ) AS ct (category text, zero int, one int, two int);</code>
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!