sql语句 根据条件分组 怎么写呢?

有如图表A,我想筛选取出红色区域内的数据记录:即,取出datetime为最近日期booksid不重复的数据记录。======SqlServerCode=======WIT... 有如图 表 A,我想筛选取出红色区域内的数据记录:
即,取出 datetime 为最近日期 booksid 不重复
的数据记录 。
======SqlServer Code=======

WITH LIST AS (
select [OrderId]
,[BooksId]
,[OperDate]
, row_number() over( partition by [BooksId] order by [OperDate] desc) as Q
FROM [T_Books_Order] T )
SELECT * FROM LIST WHERE Q=1

==PS. [OperDate] 即使原来的[DATETIME] 字段======
==XFL==
展开
 我来答
寒默忧伤
2012-08-09 · TA获得超过550个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:429万
展开全部
是筛选出bookid的datetime最新的记录吗?

oracle 可用
select orderid,bookid,datetime from (
select orderid,bookid,datetime, row_number() over(partition by bookid order by datetime desc) "row" ) where "row"=1
更多追问追答
追问
是啊 但是 我的这个事 sqlserver ,所以有些属性没有
谢谢了
追答
2005以上版本可用。上面的sql试了吗?不可用的话,在想别的办法。
szm341
2012-08-09 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5165万
展开全部
select * from table a where exists
(select 1 from table where booksid=a.booksid

group by booksid
having max(datetime)=a.datetime)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式