Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

SQL มี

SQL มีการดำเนินการประเภทต่างๆ ที่ใช้ในการสอบถามไปยังฐานข้อมูล คำสั่ง HAVING ของ SQL ทำงานเหมือนกับแบบสอบถามย่อยที่ด้านบนของแบบสอบถามเริ่มต้น ใช้งานได้ดีเมื่อคุณมีรายการจำนวนมากที่มีค่าเหมือนกัน และคุณต้องการกรองเพิ่มเติม ในบทความนี้ เราจะมาดูวิธีการทำงานกัน

การเตรียมตัว

ใน SQL Fiddle นี้โดยใช้ MySQL ฉันได้สร้างสคีมาตัวอย่างที่ใช้สำหรับตัวอย่างเหล่านี้

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

สิ่งนี้จะสร้างตารางที่เรียกว่า "รถยนต์" และมีสคีมาที่พิจารณารุ่นและปีของรถยนต์แต่ละคัน บล็อกถัดไปแทรกค่าลงในคอลัมน์เหล่านั้น:

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');

หากคุณต้องการจำลองข้อมูลของคุณเองสำหรับแบบฝึกหัดนี้ ฉันขอแนะนำให้ใช้ mockaroo.com เพื่อทำเช่นนั้น คุณสามารถจัดโครงสร้างสคีมาฐานข้อมูลของคุณได้ง่ายๆ โดยใช้วิธีนี้

วิธีใช้การมี

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

ใช้ HAVING เมื่อคุณต้องการใช้ฟังก์ชันการรวมและไม่สามารถใช้ส่วนคำสั่ง WHERE ได้ ฟังก์ชันรวมคือฟังก์ชันที่ดำเนินการบางประเภทและส่งกลับค่าเดียว คิดว่า COUNT, AVG หรือ SUM รหัสด้านบนส่งคืน:

COUNT(id) car_make
1 ออดี้
1 บีเอ็มดับเบิลยู
1 บูอิค
3 เชฟโรเลต
3 ฟอร์ด
1 ฮอนด้า
1 ฮุนได
3 รถจี๊ป
1 เกีย
1 แลมโบกินี่
1 มาเซราติ
1 มาสด้า
1 เมอร์เซเดส-เบนซ์
1 Oldsmobile
1 รถปอนเตี๊ยก
1 ปอร์เช่
1 ดาวเสาร์
1 ซูซูกิ
1 โตโยต้า

เราใช้คำสั่ง select เพื่อคว้า sql COUNT ของ car_makes ที่มีอยู่และจัดกลุ่มตามส่วนคำสั่งเพื่อแยกโดย car_make

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

นั่นคือทั้งหมดที่มีให้! เพื่อเป็นการเตือนความจำ คำสั่งย่อย HAVING ในแบบสอบถาม SQL เป็นตัวกรองย่อยที่ใช้ฟังก์ชันการรวมเพื่อดำเนินการค้นหาเพิ่มเติมบางอย่างในฐานข้อมูล

ทดลองกับฟังก์ชันการรวมอื่นๆ เพื่อเพิ่มความรู้เกี่ยวกับอนุประโยคที่ไม่เหมือนใครนี้!