Tôi đang tìm một cái gì đó tương tự này trong SQL Server:Tương đương PostgreSQL cho TOP n VỚI TIES: GIỚI HẠN "có quan hệ"?
SELECT TOP n WITH TIES FROM tablename
tôi biết về LIMIT
trong PostgreSQL, nhưng không tương đương với tồn tại trên? Tôi chỉ tò mò vì nó sẽ tiết kiệm một truy vấn thêm mỗi lần cho tôi.
Nếu tôi có bảng Numbers
với thuộc tính nums
: {10, 9, 8, 8, 2}
. Tôi muốn làm điều gì đó như:
SELECT nums FROM Numbers ORDER BY nums DESC LIMIT *with ties* 3
Nó sẽ trả về {10, 9, 8, 8}
vì phải mất top 3 cộng với phụ 8
vì nó gắn một trong những khác.
Tại sao điều này phức tạp? Hàm rank() sẽ thực hiện chính xác những gì được yêu cầu? –
@a_horse_with_no_name: Bạn hoàn toàn đúng (như tôi, lúc đầu) Những cân nhắc thứ hai của tôi không được cho. –
@Erwin: đó là tốt đẹp (http://data.stackexchange.com/stackoverflow/query/63525/top-n-with-ties), tôi không biết stackoverflow có một mô-đun tích hợp để chạy truy vấn :-) Mặc dù đầu ra của 10,10,9 cho 10,9,8,8,2,10 là không chính xác nếu bạn cần để có được top 3 (10,9,8) và liệt kê tất cả những 10,9,8; sẽ là: 10,10,9,8,8. 'WITH TIES' có thể không chính xác đối với một số trường hợp có vấn đề nhất định: http://stackoverflow.com/questions/2611822/distinct-with-count-and-sql-server-2005/2612456#2612456 –