sql >> Database >  >> RDS >> Mysql

SQL Hoe maak ik een waarde voor een nieuwe kolom op basis van het aantal bestaande kolommen per groep?

Ik denk dat je alleen voorwaardelijke aggregatie wilt, geen subquery's:

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;

Opmerking:als score een getal is en geen tekenreeks, moet u geen enkele aanhalingstekens gebruiken voor de constante.




  1. MySQL selecteer DISTINCT op hoogste waarde

  2. Meerdere inzetstukken met PDO

  3. MySQL now() verander tijdzone

  4. MySQL JSON-opslag versus twee tabellen