Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL

Mệnh đề SQL HAVING

SQL có nhiều loại operation truy vấn database. Mệnh đề HAVING hoạt động như subquery trên query ban đầu. Hữu ích khi có lượng entry lớn cùng một giá trị và muốn lọc thêm. Bài viết xem cách hoạt động.

Chuẩn bị

SQL Fiddle dùng MySQL, schema mẫu:

create table Cars ( id INT PRIMARY KEY, year VARCHAR(50), car_make VARCHAR(50), car_model VARCHAR(50) );

Tạo bảng "Cars" với schema make/model/year. Insert dữ liệu:

insert into Cars (id, year, car_make, car_model) values (1, 2011, 'Mazda', 'Miata MX-5');
insert into Cars (id, year, car_make, car_model) values (2, 1969, 'Ford', 'Mustang');
... (tổng 25 record)

Muốn mock data riêng, dùng mockaroo.com – setup schema đơn giản.

Cách dùng HAVING

SELECT COUNT(id), car_make FROM Cars GROUP BY car_make HAVING COUNT(id) > 0;

Dùng HAVING khi cần aggregate function mà WHERE không dùng được. Aggregate function: thực hiện operation trả về giá trị đơn – COUNT, AVG, SUM. Code trên trả về:

COUNT(id)car_make
1Audi
1BMW
1Buick
3Chevrolet
3Ford
1Honda
1Hyundai
3Jeep
1Kia
1Lamborghini
1Maserati
1Mazda
1Mercedes-Benz
1Oldsmobile
1Pontiac
1Porsche
1Saturn
1Suzuki
1Toyota

Dùng SELECT lấy COUNT car_make tồn tại, GROUP BY tách theo car_make.

Đó là tất cả về HAVING! Nhắc lại: mệnh đề HAVING trong query SQL là subfilter dùng aggregate function thực hiện query bổ sung trên database. Thử aggregate function khác để hiểu sâu hơn!