Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Pivot-Abfrage

Verwenden Sie einfach eine Aggregatfunktion, MAX zum Beispiel wird gut funktionieren, aber Sie müssen möglicherweise SUM verwenden wenn Sie die Summe für jeden Monat erhalten müssen, wenn es mehrere Einträge für ps_target_ecpm gibt für jeden Monat. So:

SELECT
  MAX(CASE WHEN MONTH(ps_month) = 4 THEN ps_target_ecpm ELSE 0 END) AS april_target_ecpm, 
  MAX(CASE WHEN MONTH(ps_month) = 4 THEN ps_actual_ecpm ELSE 0 END) AS april_actual_ecpm,
  MAX(CASE WHEN MONTH(ps_month) = 3 THEN ps_target_ecpm ELSE 0 END) AS march_target_ecpm, 
  MAX(CASE WHEN MONTH(ps_month) = 3 THEN ps_actual_ecpm ELSE 0 END) AS march_actual_ecpm 
FROM publisher_stats
JOIN domain ON domain.dmn_id = ps_dmn_id
LEFT JOIN langue ON langue.lng_id = domain.default_lng_id