Tôi có một bảng SQL Server AccountAction
được chuẩn hóa. Đây là phiên bản được làm phẳng của các bảng Account
và Action
mà tôi hy vọng sẽ nhanh hơn rất nhiều cho các truy vấn báo cáo qua hàng triệu hàng. Một Account
có thể có nhiều Actions
, vì vậy bảng trông tương tự như:SQL để lấy số lượng tài khoản X từ DB, có thể là số lượng các hàng khác nhau
Account Action
account1 action1
account1 action2
account1 action10
account2 action5
Tuy nhiên tôi đang gặp một số sự cố khi nhận thông tin trở lại cho một tập hợp con bị hạn chế trong một thủ tục lưu trữ đơn giản.
select Account, Action
from AccountAction
where ???
Điều tôi đang tìm kiếm là nhận được các tài khoản X đầu tiên, với tất cả các hành động của chúng. Vì vậy, đây sẽ là số hàng động. Vì vậy, bằng cách sử dụng bảng ví dụ ở trên nếu tôi chuyển vào 1, tôi sẽ nhận được 3 hàng (ví dụ: cung cấp cho tôi tất cả các hàng cho tài khoản đầu tiên).
(Tôi không nhớ rằng tên tài khoản sẽ được trong mỗi hàng - đó là xoay những nơi khác)
Tôi có cần phải sử dụng một ROWNUM hoặc tương tự để hạn chế các hàng? Tôi chắc chắn đây phải là một vấn đề đơn giản hơn tôi đã tìm thấy cho đến nay.
EDIT
Những câu trả lời bằng TOP sẽ không hoạt động, trong ví dụ tôi muốn được muốn 3 hàng trả lại nếu tôi nói 'cho tôi một (đầu tiên) tài khoản'. Nhưng làm thế nào để tôi biết sẽ có 3? Năng động của nó. Ngoài ra, chúng có thể không được tuần tự, điều gì sẽ xảy ra nếu action1 của account1 ở vị trí 55 triệu trong kết quả.
Điều này nghe có vẻ hay, mặc dù về hiệu suất trên ví dụ 100m hàng? Nó sẽ phải làm xếp hạng trên mỗi hàng đầu tiên phải không? – finoutlook
@finoutlook - Tùy theo. Tất cả những gì * thực sự * cần thiết là có dữ liệu trong thứ tự 'Tài khoản'. Khi được yêu cầu, người tối ưu hóa chỉ có thể tìm kiếm thể hiện của 'Nth'. Vậy, bạn đã có chỉ mục với 'Tài khoản' là trường đầu tiên chưa? Nếu vậy, dữ liệu đã được đặt hàng và bạn chỉ xử lý số lượng bản ghi tối thiểu. Nếu không, hãy thêm một;) – MatBailie
Thật tuyệt, tôi đã không nghĩ đến việc sắp đặt trước chúng. Tôi có thể làm điều đó như một phần của đồng bộ hóa với bảng không chuẩn hóa. – finoutlook