Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Для начала подключимся к постгресу и получим результат запроса
SQL# select salary,department_id from hr.employees;
SALARY DEPARTMENT_ID
---------- -------------
2600 50
2600 50
.......{skipped}..........
4400 10
SQL# select
2 t1.n
3 ,min(salary)
4 ,max(salary)
5 ,count(case when department_id between 1 and 40 then 1 end) d_1_40
6 ,count(case when department_id between 41 and 70 then 1 end) d_41_70
7 ,count(case when department_id between 71 and 120 then 1 end) d_71_110
8 from (
9 select salary
10 ,department_id
11 ,ntile(10)over(order by salary) n
12 from hr.employees
13 ) t1
14 group by t1.n
15 /
N MIN(SALARY) MAX(SALARY) D_1_40 D_41_70 D_71_110
---------- ----------- ----------- ---------- ---------- ----------
1 2100 2500 1 10 0
6 6400 7400 1 1 8
2 2600 2900 3 8 0
4 3200 4100 0 11 0
5 4200 6200 2 6 3
8 8400 9500 0 1 9
3 2900 3200 1 10 0
7 7500 8300 0 3 8
9 9600 11000 1 1 8
10 11500 24000 1 0 9
10 rows selected.
select round(min(100*(level - (select avg(level) from tbldatatest))/5))*5,round(max(100*(level - (select avg(level) from tbldatatest))/5))*5 from tbldatatest;
, round((min(level)over() - avg(level) over())*100/5)*5
, round((max(level)over() - avg(level) over())*100/5)*5
, round((min(level)over() - avg(level) over())*100/5)*5
round(min(100*(level - (select avg(level) from tbldatatest))/5))*5
level - (select avg(level) from tbldatatest)
Функции pivot в стандарте SQL нету, я знаю только в MSSQL расширении
Немного о Pivot tables в PostgreSQL и Python