SQL-запрос, чтобы получить вывод в порядке возрастания - PullRequest
0 голосов
/ 13 июня 2019

У меня есть таблица со следующими столбцами: Зарплата и Отдел

, и это содержимое таблицы:

IT      600000

HR      530000

IT     1000000

HR      480000

Payroll 500000

Я хотел написать запрос, чтобы получить отдел, общая суммазарплат для каждого отдела и упорядочить их в порядке возрастания общей суммы зарплат.

Это запрос, который я пробовал:

select Department, salary,
sum(Salary)
from table 
order by Department DESC;

Но я получаю вывод в виде:

Payroll 500000 3110000

Мне нужно получить вывод, в котором указана сумма каждого отдела.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Вот как:

SQL> with test (department, salary) as
  2    (select 'IT'     ,  600000 from dual union all
  3     select 'HR'     ,  530000 from dual union all
  4     select 'IT'     , 1000000 from dual union all
  5     select 'HR'     ,  480000 from dual union all
  6     select 'Payroll',  500000 from dual
  7    )
  8  select department, sum(salary) sum_sal
  9  from test
 10  group by department
 11  order by sum_sal;

DEPARTM    SUM_SAL
------- ----------
Payroll     500000
HR         1010000
IT         1600000

SQL>

Ваш запрос содержит столбец зарплаты, который неверен в этом контексте, так как вам также нужно сгруппировать по зарплате, и вы получите исходную таблицу.

0 голосов
/ 13 июня 2019

Затем используйте group by Department

select Department, sum(Salary) as salary
  from "table" 
 group by Department
 order by salary
  • table - зарезервированное ключевое слово для оракула, поэтому я заключил в кавычки
  • неагрегированный столбец salary должен бытьудалено из списка выбора
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...