注册 登录
编程论坛 SQL Server论坛

一个T-SQL语句的问题

zy_6084 发布于 2012-12-28 18:22, 512 次点击
有这样一个表,列名为姓名,衣服,价格,现在我需要统计出对于每个人,买的价格最贵的两件衣服分别是什么。用T_SQL如何写?
在面向对象语言这个语句很简单,但是在T-SQL中实在想半天也没想出来,开始想用TOP和GROUPBY,但是得不出正确结果。求高手赐教。
6 回复
#2
mpi2012-12-29 10:02
select * from (select *,row_number() over(partition by 姓名 order by 价格 desc) num from 表名)t1 where num <3
#3
zy_60842012-12-31 08:08
谢谢LS,不知道有这个函数,看来真是基础太差。继续努力学习
#4
zy_60842012-12-31 11:04
select * from(select  * ,row_number()over(partition by 姓名 order by 价格 desc)as rank from table_d )where rank<3
提示where附近有错误,LS帮忙看一下有什么问题
#5
mpi2012-12-31 11:20
as rank去掉as  我示例上面的t1是临时表名是子查询的结果集 你可以随便添加个临时表名
#6
zy_60842012-12-31 11:29
成功了,谢谢。
#7
dandandenuan2013-03-18 10:22
学习了!
1