sql >> Databasteknik >  >> RDS >> Mysql

MySQL pivotfråga

Använd bara en aggregatfunktion, MAX till exempel kommer att fungera bra, men du kan behöva använda SUM om du behöver få summan för varje månad, om det finns flera poster för ps_target_ecpm för varje månad. Så här:

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. Hur implementerar man LIMIT med SQL Server?

  2. Installera PDO-drivrutiner för PostgreSQL på Mac (med Zend för eclipse)

  3. Python MySQL - SELECT fungerar men inte DELETE?

  4. MySQL Syntax felmeddelande Operand bör innehålla 1 kolumn(er)