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== 展开
即,取出 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== 展开
2个回答
展开全部
是筛选出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
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试了吗?不可用的话,在想别的办法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询