Để tận dụng sức mạnh tuyệt vời của SQL, bạn phải hiểu mệnh đề HAVING so với WHERE. Làm thế nào để bạn sử dụng chúng? Sự khác biệt của chúng là gì?

Bạn đang xem : mysql where và have

Bài viết này nói về mệnh đề WHERE và HAVING của SQL. Cả hai mệnh đề đều là một phần của nền tảng của lệnh SQL SELECT. Chúng có cách sử dụng tương tự nhau, nhưng cũng có những điểm khác biệt quan trọng mà mọi người sử dụng SQL nên biết. Hãy xem điều gì đằng sau cuộc tranh luận HAVING và WHERE.

Trong bài viết này, chúng tôi giả sử chúng tôi làm việc cho một cơ quan xã hội của chính phủ hỗ trợ những người hoặc gia đình có thu nhập dưới một ngưỡng nhất định. Cơ quan này sử dụng một số chỉ số để xác định những người hoặc gia đình cần trợ giúp.

Đầu tiên, hãy xem tập dữ liệu mẫu. Sau đó, trong phần còn lại của bài viết, chúng tôi sẽ tạo các truy vấn dựa trên tập dữ liệu này.

Tập dữ liệu mẫu

Bộ dữ liệu này mô tả những người thuộc bốn gia đình sống ở hai thành phố. Vì lợi ích đơn giản, chúng tôi sẽ giả định rằng last_name xác định họ. Ý tưởng là để có được các chỉ số ở cấp độ cá nhân và cấp độ gia đình.

BẢNG Người

namelast_namebirth_dateyear_incomecity

MaryRoberts1964-01-1178000Oklahoma

PeterRoberts1962-09-2586500Oklahoma

JohnRoberts1999-06-030Oklahoma

SueRoberts1996-03-060Oklahoma

MelindaRoberts1998-04-040Oklahoma

GeorgeHudson1953-02-2348000Oklahoma

NancyHudson1958-12-0665000Oklahoma

AnnHudson1979-04-0235000Oklahoma

CarlGibson1963-04-03102800Phoenix

LiGibson1963-12-2796000Phoenix

KateBishop1994-07-10920000Phoenix

MarkBishop2018–9-130Phoenix

Được rồi. Bây giờ chúng ta đã thấy tập dữ liệu, hãy bắt đầu!

WHERE và HAVING: Các ví dụ đơn giản

Nói cách đơn giản, mệnh đề WHERE và HAVING hoạt động như bộ lọc; họ xóa các bản ghi hoặc dữ liệu không đáp ứng các tiêu chí nhất định khỏi kết quả cuối cùng của một truy vấn. Tuy nhiên, chúng được áp dụng cho các bộ dữ liệu khác nhau. Đó là điểm quan trọng cần hiểu về WHERE so với HAVING: WHERE lọc ở cấp bản ghi, trong khi HAVING lọc ở cấp “nhóm bản ghi”.

Hãy xem một số ví dụ.

Đây là một truy vấn mẫu sử dụng mệnh đề WHERE: Giả sử chúng ta muốn lấy tên của những người có thu nhập hàng năm lớn hơn 100.000 đô la. Chúng tôi cần lọc (hoặc loại bỏ) ở cấp bản ghi, vì vậy chúng tôi sẽ sử dụng mệnh đề WHERE thay vì mệnh đề HAVING cho truy vấn này:

Xem Thêm  Hình ảnh HTML - cách liên kết hình ảnh với html

Văn bản truy vấn cho mục đích sao chép-dán:

CHỌN tên, last_name
TỪ người
WHERE year_income & gt; 100000;

Bây giờ, hãy thử truy vấn tương tự, nhưng lần này với mệnh đề HAVING: Giả sử chúng ta muốn lấy last_name của các họ có thu nhập hộ gia đình (tức là tổng thu nhập của tất cả các thành viên trong gia đình) trên 100.000 đô la. Đây là một trường hợp rõ ràng cho việc sử dụng mệnh đề HAVING, vì chúng tôi không cần lọc theo bản ghi. (Chúng tôi sẽ không loại bỏ hồ sơ của một người vì họ kiếm được ít hơn 100.000 đô la.) Ý tưởng là lọc dựa trên thu nhập của gia đình, vì vậy chúng tôi cần nhóm mọi người theo last_name và sử dụng HAVING để lọc các nhóm của những người, như được hiển thị bên dưới:

Văn bản truy vấn cho mục đích sao chép-dán:

CHỌN last_name,
SUM (year_income) AS "family_income"
TỪ người
GROUP BY last_name
HAVING SUM (year_income) & gt; 100000;

CÁC YÊU CẦU CÓ YÊU CẦU CỦA COMPLEX

Chúng ta có thể sử dụng nhiều hàm tổng hợp như chúng ta muốn trong điều kiện của mệnh đề HAVING. Hãy đi xa hơn với phân tích của chúng tôi về thu nhập gia đình và tính toán thu nhập trung bình trên mỗi thành viên cho mỗi gia đình. Chúng tôi muốn xác định những gia đình có thu nhập dưới 50.000 mỗi người. Từ quan điểm kinh tế, phân tích này có thể cho thấy nhiều hơn về thu nhập của gia đình so với phân tích trước. Đây là câu hỏi:

Văn bản truy vấn cho mục đích sao chép-dán:

CHỌN last_name,
COUNT (*) là "thành viên",
SUM (year_income) là "family_income",
SUM (year_income) / COUNT (*) là "per_member_income"
TỪ người
GROUP BY last_name
HAVING SUM (year_income) / COUNT (*) & lt; 50000;

Lưu ý: Mệnh đề HAVING có một số hạn chế; một trong số đó là các cột mức bản ghi trong điều kiện HAVING cũng phải xuất hiện trong mệnh đề GROUP BY.

Sử dụng WHERE và HAVING trong cùng một truy vấn SQL

Rất phổ biến khi sử dụng WHERE và HAVING trong cùng một truy vấn. Hãy thực hiện một truy vấn để biết tổng thu nhập của gia đình và thu nhập trên mỗi thành viên đối với các gia đình ở Oklahoma có hơn bốn thành viên:

Văn bản truy vấn cho mục đích sao chép-dán:

CHỌN last_name,
COUNT (*) là "thành viên",
SUM (year_income) là "family_income",
SUM (year_income) / COUNT (*) là "per_member_income"
TỪ người
WHERE city = ‘Oklahoma’
GROUP BY last_name
CÓ ĐẾM (*) & gt; 4;

Ở ĐÂU và CÓ trong các truy vấn phức tạp

Để kết thúc bài viết, chúng tôi sẽ xây dựng một truy vấn trả về các gia đình có thu nhập hộ gia đình thấp hơn thu nhập trung bình ở các thành phố của họ. Phần khó khăn là truy vấn con thu được thu nhập trung bình cho một thành phố nhất định. Xin lưu ý rằng chúng tôi sử dụng một truy vấn khác vì đây là thu nhập trung bình trên mỗi thành phố; nó không dựa trên số lượng thành viên trong mỗi gia đình, mà dựa trên số lượng gia đình trong thành phố đó, như được tính bằng số lượng (tên cuối cùng riêng biệt) .

Văn bản truy vấn cho mục đích sao chép-dán:

LỰA CHỌN
  họ,
  COUNT (*) NHƯ "thành viên",
  SUM (year_income) NHƯ "family_income",
  SUM (year_income) / COUNT (*) AS "per_member_income"
TỪ những người p
GROUP BY last_name
HAVING SUM (year_income) & lt; (
  LỰA CHỌN
  SUM (year_income) / COUNT (last_name riêng biệt)
  TỪ người
  WHERE city = p.city
);

Đã giải quyết: Ở đâu so với CÓ trong SQL

Chúng tôi đã xem xét một số truy vấn khác nhau sử dụng mệnh đề WHERE và HAVING của SQL. Như chúng tôi đã đề cập, cả hai mệnh đề đều hoạt động như bộ lọc, nhưng mỗi mệnh đề áp dụng cho một cấp dữ liệu khác nhau. Mệnh đề WHERE lọc ở cấp bản ghi, trong khi mệnh đề HAVING lọc ở cấp nhóm.

Xem Thêm  Khử mùi hôi tanh giúp thịt cá đông lạnh ngon như mới với thứ đồ uống này - khử mùi gỗ mới

SQL là một ngôn ngữ siêu linh hoạt và bạn có thể tạo hàng triệu kết hợp bằng cách sử dụng mệnh đề WHERE và HAVING. Tại thời điểm này, tôi muốn đề cập đến một khóa học tuyệt vời liên quan đến các chủ đề trong bài viết này: Tạo báo cáo SQL cơ bản trong SQL của LearnSQL. Nó mang lại lợi ích cho những người biết cơ bản về SQL và muốn cải thiện kỹ năng của họ trong việc tạo bằng cách sử dụng các báo cáo SQL có ý nghĩa. Tiến xa hơn – khám phá SQL!


Xem thêm những thông tin liên quan đến chủ đề mysql ở đâu và có

Database Internet, Remote MySQL là gì ?

  • Tác giả: CODE LÝ CODE HÀNH
  • Ngày đăng: 2021-08-25
  • Đánh giá: 4 ⭐ ( 8095 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: —– Link Remote MySQL : https://remotemysql.com/

    ++++ Tài Liệu học : https://bit.ly/3eqGIkq

    Videos của mình thế nào mọi người nhớ nhận xét nha ???

    Đừng quên nhấn nút LIKE (👍) — SHARE (👈) — SUBSCRIBE (Đăng Ký✅) và đánh CHUÔNG (🔔) để nhận được những videos mới nhất và sớm nhất nha.

    Cảm ơn mọi người đã ủng hộ mình ! 😀😁😎

    Mạng Xã Hội của mình:

    –== Blog ==– : https://vloglaptrinh.blogspot.com/
    — group CODE LÝ CODE HÀNH: https://bit.ly/3hsFuaR
    — Fanpage: https://bit.ly/3klk25b

    NodeJS
    CODELÝCODEHÀNH
    mysql
    server
    sql
    Mobile

MySQL là gì? Hướng dẫn toàn tập về MySQL – Trung tâm hỗ trợ kỹ thuật

  • Tác giả: wiki.matbao.net
  • Đánh giá: 5 ⭐ ( 4711 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: MySQL là gì? MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS) hoạt động theo mô hình client-server.

Làm thế nào để kết nối PHP với MySQL Database

  • Tác giả: www.hostinger.vn
  • Đánh giá: 3 ⭐ ( 2761 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài hướng dẫn chỉ cách kết nối PHP với MySQL database bằng MySQLi và PDO cũng như sửa các lỗi cơ bản liên quan đến MySQL connection.

Hướng dẫn kết nối PHP với MySQL Database chi tiết nhất

  • Tác giả: free-php-editor.com
  • Đánh giá: 5 ⭐ ( 7332 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn kết nối PHP với MySQL Database cho những ai đang học code hoặc thử kết nối nhưng chua được, cùng tham khảo ngay bài viết của chúng tôi.

Hướng dẫn cách tải, cài đặt MySQL bản mới nhất chi tiết từng bước

  • Tác giả: www.thegioididong.com
  • Đánh giá: 3 ⭐ ( 5603 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn tải, cài đặt, download phần mềm MySQL bản mới nhất phiên bản miễn phí; cài trên máy tính PC hệ điều hành Windows, macOS, Linux. Xem ngay!

Cài đặt Mysql

  • Tác giả: toidicode.com
  • Đánh giá: 5 ⭐ ( 3625 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mở đầu cho series học Mysql của mình thì bắt buộc trên máy của các bạn phải cài đặt mysql….

Hướng dẫn cài đặt MySQL và Database mẫu

  • Tác giả: data-fun.com
  • Đánh giá: 5 ⭐ ( 4491 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn cài đặt MySQL và phần mềm viết SQL Query dễ nhất cho người mới mà không cần bất kỳ kiến thức gì về database management. Data-fun.com

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Ngày và giờ trong PHP - ngày ngày trong php

By ads_php