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

Създаването на „групиране по“ води до множество колони

Можете да използвате условно агрегиране, ако е известно, че броят на отделните стойности в колоната irt_tlevel е фиксиран.

select 
extract(year from a.created) as Year,
a.testscoreid, 
sum(case when b.irt_tlevel = 'Low' then 1 else 0 end) as Low,
sum(case when b.irt_tlevel = 'Medium' then 1 else 0 end) as Medium,
sum(case when b.irt_tlevel = 'High' then 1 else 0 end) as High,
count(*) as Questions
from asmt.testscores a 
join asmt.questions b on a.questionid = b.questionid
where a.answered = True
group by Year, a.testscoreid
order by Year desc, a.testscoreid


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL заявка за намиране на ред с определен брой асоциации

  2. прехвърляне на данни от една база данни към друга база данни в odoo

  3. PostgreSQL:таблица само за четене

  4. Команда Postgresql COPY, даваща грешка за отказа на разрешения

  5. Как да сравним датите в полетата за дата и час в Postgresql?