请教一个SQL命令

xilaianzxsc 2015-06-11 03:06:47
请教一个MSSQL的查询命令

表如下

id goodsid goods_price
1 1 101
2 2 100
3 6 105.5
4 2 95
5 1 65
6 2 110
7 6 85
............

select语句的要求是

相同goodsid号,只保留id号相大值的一行

举例 goodsid=2 有三行,那只保留id=6的那一行

select goodsid,goods_price from 表 where ........(写不下去了,请老师指导)


...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xilaianzxsc 2015-06-11
  • 打赏
  • 举报
回复
谢谢2楼的老师 此命令精辟。
还在加载中灬 2015-06-11
  • 打赏
  • 举报
回复
--兼容SQL2000的方式
SELECT * FROM TB T1
WHERE NOT EXISTS(
SELECT * FROM TB T2
WHERE T1.goodsid=T2.goodsid
AND T1.id<T2.id)
还在加载中灬 2015-06-11
  • 打赏
  • 举报
回复
--SQL2005+
;WITH CTE AS(
SELECT id,goodsid,goods_price
,ROW_NUMBER()OVER(PARTITION BY goodsid ORDER BY id DESC)RN
FROM TB
)
SELECT id,goodsid,goods_price FROM CTE WHERE RN=1

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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