2009-07-15 80 views

Trả lời

123

theo thứ tự:

TỪ & THAM GIA s xác định & hàng lọc
ĐÂU hơn bộ lọc trên các hàng
GROUP BY kết hợp những hàng thành các nhóm
bộ lọc nhóm
ORDER BY sắp xếp các hàng/nhóm
LIMIT còn lại bộ lọc trên các hàng/nhóm còn lại

+0

có tham chiếu đến điều này không ?? – Geshan

+1

@Geshan, hãy xem xét 'SET SHOWPLAN_ALL ON' –

+3

Tính gọn gàng và thông tin. Hãy tiếp tục phát huy! +1 –

7

WHERE là lần đầu tiên, sau đó bạn GROUP kết quả của truy vấn và cuối cùng nhưng không kém phần HAVING-clause được thực hiện để lọc kết quả được nhóm. Đây là thứ tự "hợp lý", tôi không biết làm thế nào điều này được thực hiện kỹ thuật trong động cơ.

+2

Worth thêm rằng tôi ưu hoa có thể di chuyển các mệnh đề từ HAVING đến WHERE nếu chúng không phụ thuộc vào tổng hợp. Điều này sẽ không ảnh hưởng đến kết quả được hiển thị. –

2

Tôi nghĩ rằng nó được thực hiện trong công cụ như Matthias nói: WHERE, GROUP BY, HAVING

Được cố gắng tìm một tuyến tham khảo liệt kê toàn bộ chuỗi (ví dụ: "SELECT" xuất phát phải xuống ở phía dưới) , nhưng tôi không thể tìm thấy nó. Nó được trình bày chi tiết trong một cuốn sách "Bên trong Microsoft SQL Server 2005" Tôi đọc cách đây không lâu, bởi chất lượng rắn Học

Edit: Tìm thấy một liên kết: http://blogs.x2line.com/al/archive/2007/06/30/3187.aspx

+0

Giải thích rất hay bạn liên kết với :-). – sleske

+0

Liên kết đã chết.Nếu bạn có thể sửa chữa nó, nó sẽ là tuyệt vời :) –

1

Hãy suy nghĩ về những gì bạn cần phải làm gì nếu bạn muốn thực hiện:

  • ĐÂU: cần nó để thực hiện JOIN hoạt động.
  • GROUP BY: Bạn chỉ định Nhóm theo "nhóm" kết quả trên tham gia, sau đó nó phải sau thao tác JOIN, sau khi sử dụng WHERE.
  • HAVING: HAVING là để lọc theo biểu thức GROUP BY nói. Sau đó, nó được thực hiện sau khi GROUP BY.

Thứ tự là WHERE, GROUP BY and HAVING.

+0

ok giải thích. – Geshan

+0

Điều bạn giải thích ở đây là rực rỡ. Nó xóa bỏ nghi ngờ của tôi liên quan đến HAVING. Vì vậy, để tóm tắt - GROUP BY & HAVING hoạt động giống như SELECT & WHERE. Mệnh đề HAVING luôn chạy trên dữ liệu bảng COMPLETE lấy điều kiện GROUP BY trong ảnh và KHÔNG TRÊN dữ liệu GROUPED. –

-3

CHỌN
TỪ
JOIN
ĐÂU
GROUP By

TRÌNH TỰ BY

+10

Điều này thực sự sai. Theo MS Certified Trainers và tài liệu đào tạo chính thức, Order By là sau khi chọn. Loại hợp lý khi bạn nghĩ về nó. Nó sẽ là ngu ngốc để đặt hàng một bảng ảo mà bạn chưa được lấy và dán. :) –

1

Trong dưới đây theo thứ tự

  1. TỪ & THAM GIA
  2. ĐÂU
  3. GROUP BY
  4. CHỌN
  5. ORDER BY
  6. LIMIT
1

Trong Oracle 12c, bạn có thể chạy mã ở cả hai dãy bên dưới:

Where 
Group By 
Having 

Hoặc

Where 
Having 
Group by 
1

Dưới đây là hoàn chỉnh trình tự cho máy chủ sql:

1. FROM 
2. ON 
3. JOIN 
4. WHERE 
5. GROUP BY 
6. WITH CUBE or WITH ROLLUP 
7. HAVING 
8. SELECT 
9. DISTINCT 
10. ORDER BY 
11. TOP 

Vì vậy, từ danh sách trên, bạn có thể dễ dàng hiểu được chuỗi thực hiện GROUP BY, HAVING and WHERE đó là:

1. WHERE 
2. GROUP BY 
3. HAVING 

Bạn có thể tìm thêm thông tin về nó Here

Các vấn đề liên quan