所以我的意思是:数据按名称分区并按日期排序
我现在想只选择每个分区中的那些行,这些行位于NO为空且GENRE为空的行之后(在提供的示例的情况下为rowNo 3之后)
因此查询结果应该返回rowNo 4和5
使用的查询:
select
name, no, genre, date,
ROW_NUMBER() OVER(PARTITION BY name, genre ORDER BY date)
from
sourceTable
答案 0 :(得分:1)
假设每个名称只有一行,其中no和genre为null
,则可以使用
select t1.*
from tablename t1
join tablename t2 on t1.name = t2.name and t2.no is null and t2.genre is null
where t1.date > t2.date
答案 1 :(得分:0)
你为什么不这样做?
select t.*
from (select name, no, genre, date,
ROW_NUMBER() OVER(PARTITION BY name, genre ORDER BY date) as rowno
from sourceTable
) t
where rowno > 3;