Computer >> Máy Tính >  >> Lập trình >> SQL

SQL có

SQL có các kiểu hoạt động khác nhau được sử dụng để thực hiện các truy vấn đến cơ sở dữ liệu. Câu lệnh HAVING của SQL hoạt động giống như một truy vấn con phía trên một truy vấn ban đầu. Nó hoạt động tốt khi bạn có một lượng lớn các mục nhập có một giá trị chung và bạn muốn lọc nó thêm. Trong bài viết này, chúng ta cùng xem xét cách thức hoạt động của nó.

Chuẩn bị

Trong SQL Fiddle sử dụng MySQL này, tôi đã tạo một lược đồ mẫu được sử dụng cho các ví dụ này.

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

Thao tác này tạo một bảng có tên “Ô tô” và có một giản đồ xem xét từng kiểu dáng và năm sản xuất ô tô. Khối tiếp theo sẽ chèn các giá trị vào các cột đó:

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');
insert into Cars (id, year, car_make, car_model) values (3, 2007, 'Toyota', '4Runner');
insert into Cars (id, year, car_make, car_model) values (4, 2013, 'Porsche', '911');
insert into Cars (id, year, car_make, car_model) values (5, 1991, 'Buick', 'Coachbuilder');
insert into Cars (id, year, car_make, car_model) values (6, 2007, 'Kia', 'Sportage');
insert into Cars (id, year, car_make, car_model) values (7, 1997, 'Oldsmobile', 'Cutlass Supreme');
insert into Cars (id, year, car_make, car_model) values (8, 2003, 'BMW', '7 Series');
insert into Cars (id, year, car_make, car_model) values (9, 1996, 'Ford', 'F150');
insert into Cars (id, year, car_make, car_model) values (10, 1992, 'Suzuki', 'SJ');
insert into Cars (id, year, car_make, car_model) values (11, 2001, 'Jeep', 'Grand Cherokee');
insert into Cars (id, year, car_make, car_model) values (12, 2000, 'Ford', 'F250');
insert into Cars (id, year, car_make, car_model) values (13, 2003, 'Honda', 'Insight');
insert into Cars (id, year, car_make, car_model) values (14, 2006, 'Chevrolet', 'HHR Panel');
insert into Cars (id, year, car_make, car_model) values (15, 1987, 'Mercedes-Benz', 'S-Class');
insert into Cars (id, year, car_make, car_model) values (16, 2004, 'Chevrolet', 'SSR');
insert into Cars (id, year, car_make, car_model) values (17, 1990, 'Maserati', '228');
insert into Cars (id, year, car_make, car_model) values (18, 2005, 'Saturn', 'Ion');
insert into Cars (id, year, car_make, car_model) values (19, 1987, 'Audi', '5000CS');
insert into Cars (id, year, car_make, car_model) values (20, 1999, 'Chevrolet', 'S10');
insert into Cars (id, year, car_make, car_model) values (21, 2007, 'Jeep', 'Liberty');
insert into Cars (id, year, car_make, car_model) values (22, 2002, 'Lamborghini', 'Murciélago');
insert into Cars (id, year, car_make, car_model) values (23, 2000, 'Hyundai', 'Tiburon');
insert into Cars (id, year, car_make, car_model) values (24, 2011, 'Jeep', 'Patriot');
insert into Cars (id, year, car_make, car_model) values (25, 1985, 'Pontiac', 'Sunbird');

Nếu bạn muốn giả mạo dữ liệu của chính mình cho bài tập này, tôi khuyên bạn nên sử dụng mockaroo.com để làm điều đó. Bạn có thể cấu trúc giản đồ cơ sở dữ liệu của mình khá đơn giản bằng cách sử dụng phương pháp này.

Cách sử dụng HAVING

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

Sử dụng HAVING khi bạn cần sử dụng một hàm tổng hợp và không thể sử dụng mệnh đề WHERE. Hàm tổng hợp là những hàm thực hiện một số loại hoạt động và trả về một giá trị duy nhất. Hãy nghĩ đến COUNT, AVG hoặc SUM. Đoạn mã trên trả về:

COUNT (id) car_make
1 Audi
1 BMW
1 Buick
3 Chevrolet
3 Ford
1 Honda
1 Hyundai
3 Xe Jeep
1 Kia
1 Lamborghini
1 Maserati
1 Mazda
1 Mercedes-Benz
1 Điện thoại di động cũ
1 Pontiac
1 Porsche
1 Sao Thổ
1 Suzuki
1 Toyota

Chúng tôi sử dụng một câu lệnh select để lấy COUNT sql của car_makes tồn tại và một nhóm theo mệnh đề để tách chúng theo car_make.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia chương trình đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Thats tất cả để có nó! Xin nhắc lại, mệnh đề HAVING trong truy vấn SQL là một bộ lọc con sử dụng hàm tổng hợp để thực hiện một số công việc truy vấn bổ sung trên cơ sở dữ liệu.

Thử nghiệm với các hàm tổng hợp khác để nâng cao kiến ​​thức về mệnh đề duy nhất này!