Member 13932549 Ответов: 2

Sql-запрос для общей зарплаты deptno wise, где более двух сотрудников выходят из приведенной ниже таблицы (попробовал много может ли кто-нибудь помочь мне в этом)


Empid Deptno Sal
1 1 1000
1 2 2000
2 3 3000
3 4 4000
4 1 5000
2 2 6000

Что я уже пробовал:

Я использовал некоторые агрегатные и ранжирующие функции

2 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, ваши данные плохи: ни один отдел не имеет более двух сотрудников в этих данных, и некоторые сотрудники, похоже, тянут зарплату из двух отделов, что ... ГМ ... странно.
Если вы предполагаете, что вы имели в виду "более одного" сотрудника в отделе, то это можно сделать очень легко.

Начните с группирования сотрудников по отделам: это тривиально, это просто GROUP BY заявление с а HAVING пункт об ограничении его 2 или более сотрудниками:

GROUP BY DeptNo 
HAVING COUNT(EmpId) >= 2
Затем вы можете применить свою агрегатную функцию к группам:
SELECT DeptNo, SUM(Sal) AS Total FROM Employees
GROUP BY DeptNo 
HAVING COUNT(EmpId) >= 2
И это дает вам нужный результат:
DeptNo  Total
1        6000
2        8000


Рейтинг:
1

Richard MacCutchan

Сначала вам нужно получить количество сотрудников для каждого отдела. Как только у вас есть эти цифры, вы можете создать запрос суммы для каждого номера отдела.