sql >> Databáze >  >> RDS >> Mysql

Pivotní dotaz MySQL

Stačí použít agregační funkci MAX například bude fungovat dobře, ale možná budete muset použít SUM pokud potřebujete získat součet za každý měsíc, pokud existuje více položek pro ps_target_ecpm za každý měsíc. Takhle:

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



  1. Převést „smalldatetime“ na „datetimeoffset“ v SQL Server (příklady T-SQL)

  2. Výukový program SQL JOINs s příklady

  3. Lepší pochopení problémů SQLalchemy s `yield_per()`

  4. Jak migrovat z MSSQL na MySQL