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

Requête pivot MySQL

Utilisez simplement une fonction d'agrégation, MAX par exemple fonctionnera bien, mais vous devrez peut-être utiliser SUM si vous avez besoin d'obtenir le total pour chaque mois, s'il y a plusieurs entrées pour ps_target_ecpm pour chaque mois. Comme ceci :

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