SQL-按提供程序按成员获取最高利用率

SQL-按提供程序按成员获取最高利用率,sql,excel,vba,select,Sql,Excel,Vba,Select,我的数据如下所示: Member - Provider - UtilizationCounts 123 - AA - 10 234 - BB - 8 456 - AA - 7 123 - CC - 5 我需要显示使用率最高的会员信息和提供商信息。所以结果应该是这样的: Member - Provider - UtilizationCounts 123 - AA - 10 234 - BB

我的数据如下所示:

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

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

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

请参阅此文档:

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

SELECT Member, Provider, UtilizationCounts
FROM (
    SELECT rownum, Member, Provider, UtilizationCounts
    FROM myData
    ORDER BY UtilizationCounts DESC
)
WHERE rownum <= 3
请参阅本文档:

这将带来一切,从最高到最低的顺序。我不确定你是否想过滤掉一些东西。如果您只想要前三名,假设您使用的是SQL Server,您可以选择:

select TOP 3 Member, Provider, UtilizationCounts
from YourTable
order by UtilizationCounts desc
这将带来一切,从最高到最低的顺序。我不确定你是否想过滤掉一些东西。如果您只想要前三名,假设您使用的是SQL Server,您可以选择:

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

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

看来这应该行得通。让我知道

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

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

看来这应该行得通。让我知道

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

你总是只需要3个结果吗?还是我们从你的例子中遗漏了什么?我认为下面的答案不正确。我猜TC意味着他需要为每个成员找到所有最高的提供者。因此,如果234有3个BBB,值为10,20,30,则查询应返回234-BBB-30@user194076-如果是,他还没有说清楚。也许在这个例子中添加更多的结果可以帮助你得到更好的答案对不起,我说得不够清楚。我有几千张这样的唱片。我通过按成员按利用率排序在提供程序卷上创建一个透视来检查结果。通过随机抽取10名成员,我能够测试以下答案是否有效。您是否总是只需要3个结果?或者我们是否遗漏了您示例中的某些内容?我认为以下答案不正确。我猜TC意味着他需要为每个成员找到所有最高的提供者。因此,如果234有3个BBB,值为10,20,30,则查询应返回234-BBB-30@user194076-如果是,他还没有说清楚。也许在这个例子中添加更多的结果可以帮助你得到更好的答案对不起,我说得不够清楚。我有几千张这样的唱片。我通过按成员按利用率排序在提供程序卷上创建一个透视来检查结果。通过随机抽取10名成员,我能够测试以下答案是否有效。我正在开发Oracle 9.2,还有其他方法吗?我正在开发Oracle 9.2,还有其他方法吗?