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 

在我看来,对于你想要的是每个成员有一行,然后提供者和利用率计数对应于最高的利用率计数。

这似乎应该工作。 让我知道。

 SELECT * FROM Member WHERE Member.UtilizationCounts = (SELECT MAX(UtilizationCounts) FROM Member m2 WHERE m2.MemberID = Member.MemberID) 
 select Member, Provider, UtilizationCounts from YourTable order by UtilizationCounts desc 

这将带来一切,从最高到最低sorting。 我不确定你是否想过滤一些东西。 如果你只想要TOP 3,假设你正在使用SQL Server,你可以使用:

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

对于Oracle,您需要使用一个名为rownum的本地列,如下所示:

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

看到这个文档: ROWNUM伪列