Hàm MIN(), MAX(), AVG()

Sử dụng hàm MIN(), MAX()

Hàm MIN(), MAX() được dùng để lấy giá trị nhỏ nhất và lớn nhất của cột.

Chúng ta sẽ thêm dữ liệu là điểm số của các học sinh vào bảng students như sau, trong đó điểm score có kiểu số thực1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
DROP TABLE IF EXISTS students;

CREATE TABLE students (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name VARCHAR(255),
  class_name VARCHAR(255),
  score FLOAT -- float4 trong PostgreSQL
);

INSERT INTO students (name, class_name, score) VALUES 
  ('Nguyễn Ngọc Tuấn', '5A', 8.9),
  ('Phan Thanh Bình', '5B', 9.5),
  ('Châu Thị Thủy', '5A', 7.6),
  ('Ngô Nhật Minh', '5B', 7.8),
  ('Nguyễn Quang Vinh', '5A', 8.3);

Sau đó chúng ta sẽ lấy điểm cao nhất và điểm thấp nhất trong bảng students:

1
SELECT MAX(score), MIN(score) FROM students;

Dữ liệu sẽ in ra:

+------------+------------+
| MAX(score) | MIN(score) |
+------------+------------+
|        9.5 |        7.6 |
+------------+------------+

Ví dụ chúng ta in ra điểm lớn nhất của lớp 5A thì sử dụng thêm điều kiện WHERE:

1
SELECT MAX(score) FROM students WHERE class_name = '5A';

Dữ liệu sẽ in ra:

+------------+
| MAX(score) |
+------------+
|        8.9 |
+------------+

Hàm COUNT()

Hàm COUNT() sẽ đếm số lượng dữ liệu

Để lấy số lượng học sinh của lớp 5A thì sẽ là:

1
SELECT COUNT(*) FROM students WHERE class_name = '5A';

Kết quả sẽ là 3.

+----------+
| COUNT(*) |
+----------+
|        3 |
+----------+

Hàm AVG()

Hàm AVG() sẽ lấy giá trị trung bình của cột:
Ví dụ lấy điểm trung bình của lớp 5A:

1
SELECT AVG(score) FROM students WHERE class_name = '5A';

Kết quả sẽ là 8.266666571299234 (trên MySQL).

Dữ liệu sẽ in ra:

+-------------------+
| AVG(score)        |
+-------------------+
| 8.266666571299234 |
+-------------------+

  1. Kiểu FLOAT trên trong MySQL là 4 bytes tương đương với kiểu float4 hay real trong PostgreSQL. Trong SQLite thì kiểu dữ liệu số thực luôn là 8 bytes. ↩︎