2011-08-04 101 views
1

獲取由會員利用率最高我的數據看起來是這樣的:SQL - 由供應商

Member - Provider - UtilizationCounts 

123 - AA  - 10 
234 - BB  - 8 
456 - AA  - 7 
123 - CC  - 5 

我需要出示會員信息和供應商信息具有最高的利用率。這樣的成績應該是這個樣子:

Member - Provider - UtilizationCounts 

123 - AA  - 10 
234 - BB  - 8 
456 - AA  - 7 
+0

你總是隻需要3個結果嗎?還是我們缺少你的例子中的某些東西? – Lamak

+0

我認爲下面的答案不正確。我想TC意味着他需要找到每個成員的所有最高提供者。所以,如果234有3個BBB,值爲10,20,30,查詢應該返回234-BBB-30 – user194076

+0

@ user194076 - 如果是這樣,他還沒有說清楚。也許在示例中添加更多結果可以幫助您獲得更好的答案 – Lamak

回答

4

這聽起來我像你希望的是有一個排的每個成員,然後提供者和利用計數對應於最高利用率計數。

這似乎應該工作。讓我知道。

SELECT * 
FROM Member 
WHERE Member.UtilizationCounts = 
      (SELECT MAX(UtilizationCounts) 
      FROM Member m2 
      WHERE m2.MemberID = Member.MemberID) 
+0

是的!這工作!非常感謝!!!! – JK0124

1

對於Oracle,你需要使用一個名爲rownum這樣的原生柱:

SELECT Member, Provider, UtilizationCounts 
FROM (
    SELECT rownum, Member, Provider, UtilizationCounts 
    FROM myData 
    ORDER BY UtilizationCounts DESC 
) 
WHERE rownum <= 3 

看到這個文檔:ROWNUM Pseudocolumn

+0

我正在研究Oracle 9.2,還有其他方法可以解決嗎? – JK0124

1
select Member, Provider, UtilizationCounts 
from YourTable 
order by UtilizationCounts desc 

這將帶來一切,從最高到最低排列。我不確定你是否想過濾掉某些東西。如果你只想要TOP 3,假設你正在使用SQL Server,你會去用:

select TOP 3 Member, Provider, UtilizationCounts 
from YourTable 
order by UtilizationCounts desc