AVG trong SQL

Bởi Kiên Smart Data
0 Nhận xét
AVG trong SQL

Hàm AVG trong Sql dùng để tính trung bình cộng của kết quả trả về. Đây là một trong các hàm căn bản của SQL, bài viết này SmartData sẽ hướng dẫn các bạn cách cú pháp và một số ví dụ thực tế với hàm này nhé.

Cú pháp

SELECT AVG(Biểu_thức) FROM Tên_bảng

Tham số truyền vào gồm 2 thông tin

  • Biểu thức trong hàm avg: Thông thường sẽ là tên cột hoặc giá trị *
  • Tên_bảng: Tên bảng mà bạn đang muốn thực hiện truy vấn

Hãy cùng xem xét các ví dụ dưới đây để hiểu hơn về hàm AVG. Ta sẽ sử dụng bảng USERS dưới đây làm bảng dữ liệu xuyến suốt các ví dụ

+----+----------+-----------+-----------+ | ID | NAME | SALARY | MONTH | +----+----------+-----------+-----------+ | 1 | kien | 1000 | 1 | | 2 | ngoc | 1000 | 1 | | 3 | nghia | 3000 | 1 | | 4 | trang | 2000 | 2 | | 5 | ngoc | 2000 | 2 | +----+----------+-----------+-----------+

Ví dụ 1: Sử dụng hàm AVG trong SQL với 1 cột

Các hàm tổng hợp như AVG() có thể được sử dụng như một cột duy nhất trong truy vấn SELECT. Ví dụ:

SELECT AVG(SALARY) as avg FROM USERS;

Đây là kết quả:

+--------+ | AVG | +--------+ | 2000 | +--------+

Ở đây chúng ta không sử dụng điều kiện tìm kiếm tức là truy vấn sẽ trả về tất cả các bản ghi đang có trong bảng USERS.

Xem thêm bài viết tìm tổng các giá trị trong cột tại đây.

Ví dụ 2: Sử dụng hàm AVG trong SQL với GROUP BY

AVG có thể được sử dụng như là một aggregate functions khi đi kèm với GROUP BY.

SELECT NAME. AVG(SALARY) as LUONG_TRUNG_BINH FROM USERS GROUP BY NAME;

Dữ liệu trả về sẽ như sau:

+--------+---------------------+ | NAME | LUONG_TRUNG_BINH | +--------+---------------------+ | kien | 1000 | | nghia | 3000 | | ngoc | 2000 | | trang | 2000 | +--------+---------------+

Đầu tiên là từ khóa SELECT với tên cột(NAME), sau đó là hàm AVG() với giá cột làm đối số. Sau đó, chúng ta có LUONG_TRUNG_BINH, bí danh của cột mới được tạo bởi AVG().

Tiếp theo là từ khóa FROM và tên bảng. Ở cuối, chúng ta có mệnh đề GROUP BY với cột NAME. Điều này xác định các nhóm (tức là những cá nhân được nhóm theo tên). Đối với mỗi nhóm, chúng ta nhận được giá trị trung bình của cột SALARY

Ví dụ 3: Dùng AVG trong SQL với mệnh đề HAVING

Một cách khác để sử dụng AVG() là lọc các hàng theo giá trị được trả về bởi hàm này – tức là trong mệnh đề HAVING.

Hãy cùng xem câu truy vấn sau đây:

SELECT NAME. AVG(SALARY) as LUONG_TRUNG_BINH FROM USERS GROUP BY NAME HAVING LUONG_TRUNG_BINH > 2000;

Và kết quả trả về như sau:

+--------+---------------------+ | NAME | LUONG_TRUNG_BINH | +--------+---------------------+ | nghia | 3000 | +--------+---------------------+

Trong câu SELECT phía trên, chúng ta có cột NAME. tiếp theo là hàm AVG(). Đối với mỗi NAME nhận được, giá trị trung bình theo cột SALARY. Sau FROM là tên bảng USERS đi kèm với mệnh đề GROUP BY với cột NAME.

Cuối truy vấn là mệnh đề HAVING với hàm AVG(). Đoạn này sẽ cho phép lọc ra các nhân viên có lương trunh bình lớn hơn 2000

Tạm kết

Như vậy SmartData đã cùng các bạn đi qua 3 ví dụ khá quen thuộc khi sử dụng cùng với hàm AVG trong sql. Hi vọng bài viết này phần nào mang lại lợi tích cho các bạn trong công việc.

Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data