救命!!!我很困惑,尝试了多种选择,但都无济于事...... 我需要为每个 Pub_id 返回一行,返回的行应该是 Count 较高的那一行,当有不止一行具有最高计数的行时,我需要 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
最佳答案
;WITH T
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY pub_id
ORDER BY [count] DESC, price_id DESC) AS rn
FROM your_table)
SELECT pub_id,
[count],
price_id
FROM T
WHERE rn=1
关于sql-server - TSQL - 选择计数较高的行,当计数相同时,选择 id 值较高的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7405544/