1樓:匿名使用者
--測試資料
with tmp(id,name,date) as (
select 1,'張三','2014/2/1' union all
select 2,'李四','2014/2/2' union all
select 3,'李四','2014/2/5' union all
select 4,'張三','2014/2/5' union all
select 5,'李四','2014/2/6' union all
select 6,'李四','2014/2/8' union all
select 7,'張三','2014/2/8' union all
select 8,'李四','2014/2/9' union all
select 9,'張三','2014/2/10'),
--同一使用者當天、前一天和前兩天的資料
tt as (
select id,name,date
,row_number() over (partition by name order by cast(date as datetime)) as seq
from tmp
)select
t1.id,t1.name,t1.date
,t2.id,t2.name,t2.date
,t3.id,t3.name,t3.date
from tt as t1
left join tt as t2 on t1.name=t2.name and t1.seq-1=t2.seq
left join tt as t3 on t2.name=t3.name and t2.seq-1=t3.seq
order by t1.name,cast(t1.date as datetime)結果:
2樓:匿名使用者
為什麼要這這樣呢?
說出來也許有別的方法,
現在看只能藉助臨時表
求個SQL語句
預處理引數,效率高 就是將輸入的url按規則先拆分為兩個欄位,分別判斷一下相反的思路,如果想要將資料庫兩個欄位拼接後和url對比,效率會非常低。比如,假設表中有100條記錄,符合條件的就1條,符合前置欄位的有10條,用第二種方法是每天記錄都讀取 計算字串,然後對比 第一種方法,判斷第一個欄位只有10...
求一條sql語句
求score總和 select sum score from tablename求最大userid select max userid from tablename 你的意思沒說明白,是要求最大userid對應的score總和。select userid,sum score from tablena...
求一SQL語句,請求幫助
select 日期,數值 case when 數值 is null then select top 1 數值 from tb where k.日期 日期 order by 日期 desc else 數值 end from tb k select date as 日期,num case when co...