1. ホーム
  2. sql

[解決済み] SQLのネストした集計関数、Max(Avg()) [終了しました]

2022-02-15 18:31:53

質問

私はこのクエリをSQLで書いています。

select MAX(AVG(salary) ) from employees group by department_id;

まず最初に department_id しかし、次に何が起こるのでしょうか?

どのように解決するのか?

このような場合

EmployeeId DepartmentId Salary
    1          1         10              
    2          1         30
    3          2         30
    4          2         40
    5          2         20
    6          3         40
    7          3         50

グループ化後

DepartmentId    AVG(Salary) 
    1             (10+30)/2 = 20
    2             (30+40+20)/3 = 30
    3             (40+50)/2= 45

したがって、以下のクエリは、departmentId 3 の最大平均給与額として 45 を返します。

SELECT MAX(x.avg) 
FROM ( SELECT AVG(salary)as avg FROM employees group by department_id)x;