So sánh where và having trong sql
sự khác nhau giữa WHERE và HAVINGprogramming sql cuong.tran (Trần Xuân Cường) March 7, 2016, 2:43am #1 ai có thể giải thích cho em biết sự khác nhau giữa WHERE và HAVING trong SQL được không, em vẫn chưa rõ lắm. 2 Likes Phan_Hoang (Phan Hoàng) March 7, 2016, 5:09am #2 Dùng được chứ. WHERE - filter kết quả theo dòng Ví dụ: bạn có 1 bảng như sau (3 trường student, subject, mark nhé) Câu lệnh: SELECT student, sum(mark) from math GROUP BY student, nó sẽ ra Câu lệnh: SELECT student, sum(mark) from math WHERE mark > 5 GROUP BY student, nó sẽ ra Câu lệnh: SELECT student, sum(mark) as s from math WHERE mark > 5 GROUP BY student HAVING s>8, nó sẽ ra Chú ý: WHERE phải trước GROUP BY nhé. 7 Likes tuancoi2506 (Phạm Hoàng Tuấn) March 7, 2016, 3:51am #3 Bạn ở trên nói đúng rồi, mình tóm tắt lại là Where thường dùng để tìm điều kiện cho thuộc tính của Bảng, còn Having thường dùng để tìm điều kiện trên các Function (SUM,AVG,COUNT…) trên các thuộc tính của Bảng. 6 Likes Yoshimin (Min Jsa) March 7, 2016, 1:56pm #4 Where : Là câu lệnh điều kiện trả kết quả đối chiếu với từng dòng . Vì vậy mà sau GROUP BY thì sẽ chỉ dùng được Having . (HAVING có thể thay thế vị trí dùng cho WHERE. nhưng . ngược lại WHERE thì KHÔNG thể thay thế vị trí cho HAVING nhé bạn) 1 Like Sự khác biệt giữa HAVING và WHERE là gì?Dương Thái Huy · Dương Thái Huy 16:46 13/11/2008 6 giờ trước Tôi phải đi theo hướng sai hoặc tôi đang có một khoảnh khắc ngu ngốc. Sự khác biệt giữa HAVINGvà WHEREtrong một SQL SELECTtuyên bố là gì? EDIT: Tôi đã đánh dấu câu trả lời của Steven là câu trả lời đúng vì nó chứa bit thông tin chính trên liên kết:
Tình huống tôi đã thấy WHEREtrong không có GROUP BYvà là nơi sự nhầm lẫn của tôi bắt đầu. Tất nhiên, cho đến khi bạn biết điều này, bạn không thể chỉ định nó trong câu hỏi. Rất cám ơn cho tất cả các câu trả lời đã được khai sáng.
246 hữu ích 2 bình luận 303k xem chia sẻ NộI Dung:
SQL viết tắt của Structured Query Language; nó là ngôn ngữ cơ sở dữ liệu khai báo hoặc toàn diện được sử dụng để truy cập dữ liệu từ cơ sở dữ liệu. Sự khác biệt giữa mệnh đề where và have trong SQLDữ liệu quan trọng đối với mọi tổ chức. Vì vậy, cần phải lưu trữ dữ liệu một cách có tổ chức để truy xuất chúng. Dữ liệu được lưu trữ trong các bảng. Cơ ở dữ liệu bao gồm một Sự khác biệt giữa mệnh đề ở đâu và có trong SQL
SQL là viết tắt của Ngôn ngữ truy vấn có cấu trúc ; nó là ngôn ngữ cơ sở dữ liệu toàn diện hoặc khai báo được sử dụng để truy cập dữ liệu từ cơ sở dữ liệu. Biểu đồ so sánh
Định nghĩa mệnh đề ở đâuMệnh đề WHERE của SQL được sử dụng để mô tả một điều kiện tại thời điểm truy xuất dữ liệu từ một bảng hoặc bằng cách nối với nhiều bảng. Nó chỉ trả về giá trị cụ thể từ bảng nếu điều kiện đã cho được thỏa mãn. Mệnh đề WHERE được sử dụng để thẩm thấu các bản ghi và chỉ truy xuất các bản ghi cần thiết. SQL cũng thực hiện các kết nối logic và, hoặc không trong mệnh đề WHERE còn được gọi là điều kiện boolean ; điều kiện phải đúng để lấy các bộ dữ liệu. Các toán hạng của các biểu thức kết nối logic liên quan đến các toán tử so sánh, chẳng hạn như <, <=, >, > =, = và . Các toán tử so sánh này so sánh các chuỗi và biểu thức số học. Nó có thể được sử dụng trong câu lệnh CHỌN, cũng như trong các câu lệnh CẬP NHẬT, XÓA . Hãy lấy một ví dụ. Bảng hiển thị bên dưới có tên là bảng ' Bán hàng ' bao gồm các thuộc tính ' Sản phẩm ' và ' Sales_amount '. Định nghĩa có khoảnSQL cung cấp mệnh đề HAVING có thể được sử dụng cùng với mệnh đề GROUP BY . Điều khoản HAVING này giúp lấy các giá trị cho các nhóm đáp ứng các điều kiện nhất định. Mệnh đề WHERE cũng có thể sử dụng kết hợp với mệnh đề HAVING trong quá trình lựa chọn, mệnh đề WHERE lọc hàng riêng lẻ. Các hàng sau đó được nhóm lại và các phép tính tổng hợp được thực hiện, tại mệnh đề HAVING cuối cùng lọc các nhóm. Nó hoạt động giống như WHERE khi từ khóa GROUP BY không được sử dụng. Các hàm Nhóm như min, max, avg, sum và Count chỉ có thể xuất hiện trong hai mệnh đề: mệnh đề SELECT và HAVING. Nó cung cấp một điều kiện trên các bộ dữ liệu tương ứng với từng giá trị trong nhóm các thuộc tính. Tập hợp duy nhất của các bản ghi thỏa mãn điều kiện sẽ được hiển thị như là kết quả. Ở đây, chúng tôi cũng lấy ví dụ tương tự như mệnh đề WHERE và xem xét cùng bảng ' Bán hàng '. Khi chúng tôi muốn tính Total_sales của điện thoại và loa bằng mệnh đề HAVING, chúng tôi sẽ viết truy vấn sau. CHỌN Sản phẩm, tổng (Sales_amount) NHƯ Total_sales TỪ NHÓM BÁN HÀNG THEO Sản phẩm CÓ sản phẩm trong ('phone', 'Loa');Truy vấn tạo ra đầu ra sau trong đó các sản phẩm được truy xuất trước, sau đó hàm tổng hợp (tổng) được thực hiện và tại các nhóm cuối cùng được lọc không giống như mệnh đề WHERE. Khi chúng tôi chỉ muốn tìm những sản phẩm có Total_sales lớn hơn 1000. Truy vấn có thể được viết là: Sản lượng được sản xuất là: Điều này không thể được thực hiện bằng cách sử dụng mệnh đề WHERE mặc dù có HAVING và nó tạo ra một thông báo lỗi vì mệnh đề WHERE không thể được sử dụng với các hàm tổng hợp. Cám ơn bạn rất nhiềuMình cám ơn sự giúp đỡ chân thành của bạn. Mong được sự hổ trợ lẫn nhau để cùng nâng cao kiến thức về Database. Phức tạp quá. Theo tôi cứ lấy ví dụ ra trình bày cho dễ hiểu Rất cám ơn sự trợ giúp của các anh chị. Hy vọng có thể cùng nhau hổ trợ lẫn nhau để nâng cao kiến thức. Thanhks Theo ý hiểu của mình:
|