我的表中有2列TeamKey和Counter。
我需要做的是,当有不同的TeamKey值时,我需要选择具有最大计数器值的值。我需要做的另一件事是,当所有计数器值相同时,我需要选择具有最大值的团队密钥。
到目前为止,我已经能够实现第1部分,我使用ROW_NUMBER函数(以及内连接)选择具有最大计数器值的teamKey,但我在如何编写第2部分时画了一个空白当所有计数器值相同时选择max(teamKey)。
TeamKey Counter
203 297
203 761
203 98
234 932
对于场景1:我会选择TeamKey = 234,因为Counter值为932(此数据集中的最大(计数器)值)。但是在第二种情况下,当所有计数器值相同时,我需要选择MAX(TeamKey)。例如:
TeamKey Counter
203 1
203 1
98 1
981 1
394 1
因此,在上面的数据集中,我会选择TeamKey = 981,因为计数器值都是相同的,但TeamKey = 981是最大的TeamKey值。
换句话说,当计数器值不同时,选择具有最大计数器值的TeamKey。要么。如果计数器值完全相同,则选择MAX(TeamKey)值。
以下是我使用一些测试数据设置的SQL Fiddle。如果您需要更多信息,我将非常乐意与您分享详细信息。感谢您抽出宝贵时间阅读问题。
答案 0 :(得分:1)
所以,如果有一个最大计数器,你想要那一行,当它被绑定时你想要最高的团队密钥的顶级计数器?如果是这样,这就是你所需要的;)
select top 1 teamkey
, counter
from testresults
order by counter desc
, teamkey desc
答案 1 :(得分:0)
试试这个
SELECT MAX(Counter) FROM TestResults where exists (select count(distinct teamkey) from TestResults having count(distinct teamkey)>1)
SELECT MAX(Teamkey) FROM TestResults2 where exists (select count(distinct counter) from TestResults2 having count(distinct counter)=1)