Untitled

 avatar
unknown
plain_text
5 months ago
2.1 kB
4
Indexable
Cho hai bảng như dưới đây, hãy viết một truy vấn để hiển thị kết quả so sánh (cao hơn/thấp hơn/bằng) của mức lương trung bình của nhân viên trong một phòng ban với mức lương trung bình của công ty.
 
-- Table: luong
-- | id | employee_id | amount | pay_date   |
-- |----|-------------|--------|------------|
-- | 1  | 1           | 9000   | 2017-03-31 |
-- | 2  | 2           | 6000   | 2017-03-31 |
-- | 3  | 3           | 10000  | 2017-03-31 |
-- | 4  | 1           | 7000   | 2017-02-28 |
-- | 5  | 2           | 6000   | 2017-02-28 |
-- | 6  | 3           | 8000   | 2017-02-28 |
 

Cột employee_id tham chiếu đến employee_id trong bảng employee sau đây.
 

-- | employee_id | department_id |
-- |-------------|---------------|
-- | 1           | 1             |
-- | 2           | 2             |
-- | 3           | 2             |
 

Với dữ liệu mẫu trên, kết quả như sau:
 

-- | pay_month | department_id | comparison  |
-- |-----------|---------------|-------------|
-- | 2017-03   | 1             | higher      |
-- | 2017-03   | 2             | lower       |
-- | 2017-02   | 1             | same        |
-- | 2017-02   | 2             | same        |
 

Giải thích:

Trong tháng 3, lương trung bình của công ty là (9000+6000+10000)/3 = 8333.33...

Lương trung bình cho phòng ban '1' là 9000, là lương của nhân viên có employee_id '1' vì chỉ có một nhân viên trong phòng ban này. Vì vậy kết quả so sánh là 'higher' (cao hơn) vì 9000 > 8333.33.

Lương trung bình của phòng ban '2' là (6000 + 10000)/2 = 8000, là trung bình của nhân viên có employee_id '2' và '3'. Vì vậy kết quả so sánh là 'lower' (thấp hơn) vì 8000 < 8333.33.

Với cùng công thức tính lương trung bình trong tháng 2, kết quả là 'same' (bằng nhau) vì cả phòng ban '1' và '2' đều có mức lương trung bình bằng với mức lương trung bình của công ty, là 7000.
Editor is loading...
Leave a Comment