sql查询最大值,第一列相同比较第二列

d383137359 2018-07-05 02:09:25
有如下格式的表结构
A1 1 1
A1 1 2
A1 2 1
A1 2 2
A2 1 1
A2 1 2
A2 2 1

我需要的最终结果是
A1 2 2
A2 2 1

当第一列类型多个时,比较第二列,如果第二列相同,比较第三列。其实还有第四列,五列,也是类似这种推理
然后取所有类型最大的那一行比较结果的数据集。
...全文
428 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2018-07-05
  • 打赏
  • 举报
回复
1#月神不用大概,就是这样,补个测试数据

--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([name] nvarchar(22),[num1] int,[num2] int)
Insert #T
select N'A1',1,1 union all
select N'A1',1,2 union all
select N'A1',2,1 union all
select N'A1',2,2 union all
select N'A2',1,1 union all
select N'A2',1,2 union all
select N'A2',2,1
Go
--测试数据结束
SELECT name,
num1,
num2
FROM
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY name ORDER BY num1 DESC, num2 DESC) rn
FROM #T
) t
WHERE rn = 1;


正怒月神 2018-07-05
  • 打赏
  • 举报
回复
假设字段叫做

name,num1,num2

大概如下

select * from (
select ROW_NUMBER() over(partition by name order by num1 desc,num2 desc) rid,name,num1,num2 from 表)A
where A.rid=1

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧