Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL Comment créer une valeur pour une nouvelle colonne basée sur le décompte d'une colonne existante par groupes ?

Je pense que vous voulez juste une agrégation conditionnelle, pas des sous-requêtes :

select Max(Counting) as Total, student, stdType,
       sum(case when score = '3' then 1 else 0 end) as Score3,
       sum(case when score = '4' then 1 else 0 end) as Score4
from #tempBWMSHonors3
group by student, stdType;

Remarque :si le score est un nombre et non une chaîne, vous ne devez pas utiliser de guillemets simples pour la constante.