sql >> Databáze >  >> RDS >> PostgreSQL

Sečtěte po měsíci a uveďte měsíce do sloupců

Můžete použít agregační funkci s CASE výraz pro přeměnu řádků na sloupce:

select id,
  extra_info,
  sum(case when month = 'jan' then value else 0 end) jan,
  sum(case when month = 'feb' then value else 0 end) feb,
  sum(case when month = 'mar' then value else 0 end) mar,
  sum(case when month = 'apr' then value else 0 end) apr,
  sum(case when month = 'may' then value else 0 end) may,
  sum(case when month = 'jun' then value else 0 end) jun,
  sum(case when month = 'jul' then value else 0 end) jul,
  sum(case when month = 'aug' then value else 0 end) aug,
  sum(case when month = 'sep' then value else 0 end) sep,
  sum(case when month = 'oct' then value else 0 end) oct,
  sum(case when month = 'nov' then value else 0 end) nov,
  sum(case when month = 'dec' then value else 0 end) "dec"
from yt
group by id, extra_info

Viz SQL Fiddle s ukázkou



  1. Jak používat wireshark k jasnému zachycení dotazu mysql sql

  2. Jak zjistím maximální velikost transakce v MySQL?

  3. Proč SQL Server ignoruje vaule ve zřetězení řetězců, když je zadána klauzule ORDER BY

  4. heroku run rake db:migrate error