Tôi mới sử dụng Oracle và thế giới SQL. Tôi có một vấn đề nhỏ với một truy vấn mà tôi không thể tìm ra cho cuộc sống của tôi, tôi đã dành một vài giờ cố gắng phương pháp tiếp cận khác nhau và tôi không thể có được kết quả tôi mong đợi. Vì vậy, heres truy vấn của tôi:Cách sử dụng MAX() trên kết quả truy vấn con?
SELECT *
from(Select membership.mem_desc,membership.mem_max_rentals,membership_history.mem_type,
count(membership_history.MEM_TYPE) as membership_count
from membership_history
JOIN membership ON membership.mem_type = membership_history.mem_type
group by (membership_history.mem_type,membership.mem_desc,membership.mem_max_rentals)
) g
WHERE g.membership_count = (select MAX(membership_count) from g);
Vì vậy, truy vấn bên trong hoạt động hoàn hảo và trả về hai kết quả. Bây giờ tôi có hai giá trị này, tôi đang cố gắng tìm ra cách trả về hàng với giá trị tối đa là membership_count, là nơi tôi tiếp tục gặp khó khăn. Trong truy vấn trên tôi đã thử sử dụng MAX() trong mệnh đề where nhưng bên trong mà chọn tôi tiếp tục nhận được lỗi 'table not found' (có nghĩa là 'g'). Vì vậy, câu hỏi của tôi là làm thế nào để tôi sử dụng hàm MAX() trên các kết quả của truy vấn phụ của tôi? Bất kỳ suy nghĩ hay lời đề nghị sẽ được đánh giá cao!!!!!
Nếu bạn không biết về nó, [sqlfiddle] (http://www.sqlfiddle.com) không có sẵn Oracle và bạn có thể phát với các định dạng báo cáo khác nhau. – hd1