Slider

Học Đàn Guitar

Giải trí

Tin tức mới

Tài liệu CNTT

Thủ thuật CNTT

CLB Webmaster

Hình ảnh


Hàm COUNT(DISTINCT) rất hữu ích, tuy nhiên cũng khá tốn kém. Giống như COUNT(), nó lấy tất cả các phần tử, nhưng không dừng lại ở đó nó còn phải sắp xếp và đếm các phần tử không trùng lặp. Trong một số trường hợp bạn có thể tránh dùng hàm này mà vẫn đạt được mục đích. Ví dụ bạn cần tìm tất cả các khách hàng đã từng mua ít nhất hai loại sản phẩm khác nhau, câu lệnh dùng COUNT(DISTINCT) sẽ như thế này:

SELECT KhachHang_ID
FROM dbo.BanHang
GROUP BY KhachHang_ID
HAVING COUNT(DISTINCT SanPham_ID) > 1


Bạn có thể dùng cách khác, hiệu quả hơn, như sau:
SELECT KhachHang_ID
FROM dbo.BanHang
GROUP BY KhachHang_ID
HAVING MIN(SanPham_ID) < MAX(SanPham_ID)


Khi khách hàng mua hai loại sản phẩm khác nhau, SanPham_ID phải khác nhau, do đó MIN(SanPham_ID) phải khác với MAX(SanPham_ID). Và việc tìm ra MIN và MAX của SanPham_ID đơn giản hơn nhiều so với việc phải đếm tất cả các sản phẩm khác nhau.
Trích từ: http://kenhdaihoc.com/forum/showthread.php?t=3089


Theo: sqlviet.com

«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn

Không có nhận xét nào :

Leave a Reply