PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Сумирайте по месеци и поставете месеци като колони

Можете да използвате агрегатна функция с CASE израз за превръщане на редовете в колони:

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

Вижте SQL Fiddle с демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Знак за нов ред на PostgreSQL

  2. sql за намиране на най-новия запис в група

  3. PostgreSQL поддържа ли своите pl* интерпретатори постоянно заредени?

  4. Не може да се вмъкне JSON от PostgreSQL към elasticsearch. Получаване на грешка - „Изключение при изпълнение на JDBC заявка“

  5. Проста криптирана аритметична библиотека (SEAL) и променливата seal::Ciphertext