Bonjour,

En ce moment je dispose d'une table avec 3 colonnes :
  • date de type datetime (de 01/01/2000 à 01/07/2013)
  • categorie de type string
  • satisfaction de type string qui représente un "booléen" (si "Très heureux", alors 1, sinon 0).


Je souhaiterais connaitre le taux de satisfaction par catégorie, pour chaque mois.

Est-ce que la requête suivante est bien selon vous ? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT
to_char(date, 'YYYY-MM') annee_mois,
categorie,
( SUM(CASE WHEN satisfaction = 'Très heureux' THEN 1.0 ELSE 0.0 END) / COUNT(*) ) * 100 AS taux
FROM ma_table
GROUP BY categorie, annee_mois
ORDER BY categorie, annee_mois;
Au passage je souhaiterais vous demander ce qu'il se passe si on remplace COUNT(*) par SUM(1), est-ce que c'est équivalent ?

Je vous remercie pour votre aide , cordialement.