Sql server TSQL-选择计数较高的行,当计数相同时,选择id值较高的行

Sql server TSQL-选择计数较高的行,当计数相同时,选择id值较高的行,sql-server,tsql,greatest-n-per-group,Sql Server,Tsql,Greatest N Per Group,救命啊!!!我被难住了,尝试了几种选择,但都没有用。。。 我需要为每个Pub_id返回一行,返回的行应该是具有较高计数的行,当有多行具有最高计数时,我需要具有较高price_id的行 我已经用这些数据填充了一个表 pub_id, price_id, count 7, 59431, 5 22, 39964, 4 39, 112831, 3 39, 120715, 2 47, 95359,

救命啊!!!我被难住了,尝试了几种选择,但都没有用。。。 我需要为每个Pub_id返回一行,返回的行应该是具有较高计数的行,当有多行具有最高计数时,我需要具有较高price_id的行

我已经用这些数据填充了一个表

pub_id, price_id,   count
7,  59431,            5
22, 39964,            4
39, 112831,           3
39, 120715,           2
47, 95359,            2
74, 142825,           5
74, 106688,           5
74, 37514,            1

这就是我需要回报的

pub_id, price_id,   count
7,  59431,            5
22, 39964,            4
39, 112831,           3
47, 95359,            2
74, 142825,           5

你想要这样的吗

select pub_id,
       Count,
       Price_Id
from   (select Pub_id,
               max(count),
               Price_Id
        from   table_name
        group  by Pub_id) der_tab
group  by Pub_id,
          Count
having Price_id = max(price_Id)  

请不要使用HTML标记。只需将表格粘贴到中,然后单击
{}
图标将所选文本格式化为代码。对于大代码块,不要使用反勾号。只需选择它并点击代码格式图标。看起来好多了!不过,这似乎不是一个有效的查询。
select pub_id,
       Count,
       Price_Id
from   (select Pub_id,
               max(count),
               Price_Id
        from   table_name
        group  by Pub_id) der_tab
group  by Pub_id,
          Count
having Price_id = max(price_Id)