with cte as
(select '000019' cardid, cast('2012-5-15 0:00' as datetime) datadata, cast('2012-5-15 7:40' as datetime) datatime,88 machaddr union all
select '000019' ,'2012-5-15 0:00' ,'2012-5-15 13:52',88 union all
select '000019' ,'2012-5-15 0:00' ,'2012-5-15 18:00',88 union all
select '000021' ,'2012-5-15 0:00' ,'2012-5-15 7:40',78 union all
select '000032' ,'2012-5-15 0:00' ,'2012-5-15 8:05',78 union all
select '000032' ,'2012-5-15 0:00' ,'2012-5-15 12:18',88 union all
select '000032' ,'2012-5-15 0:00' ,'2012-5-15 14:08',88
),tempa as
(select cardid ,datadata,datatime,row_number() over (partition by cardid order by datatime) row from cte
),t as
(select cardid,datadata,datatime,row from tempa
union all
select cardid,datadata,null,row+1 from t a where not exists (
select cardid,datadata,datatime,row from tempa b where b.row = a.row + 1 and a.cardid = b.cardid
) and a.row <4
)select * from t order by cardid,row
資料庫知識部分討論中發現的知識空缺
一 所有的候選碼都不能有冗餘,即乙個候選碼不能含有多餘的屬性 二 五種基本關係代數運算 1 並2 差 3 廣義笛卡爾積 4 投影 5 選擇 三 擴充套件的關係代數運算 1 交2 連線 連線 等值連線 自然連線 3 除4 廣義投影 允許在投影列表中使用算術運算 5 外連線 左外連線 右外連線 全外連線...
sql 實現日期的補全工作
問題背景 一商場,每天都有銷售,但由於季節性原因 主要影響月 或者某些原因 主要影響日 導致按月或日統計某商品銷售額時,日期缺失。一 關於月缺失 如空調器按月統計出現如下狀態 ny 年月 mxid 明細類 xse 銷售額 ljxse 累計銷售額 200601 a001 100 100 200603 ...
sql部分優化
1 負向條件查詢不能使用索引 select from order where status 0 and stauts 1 not in not exists都不是好習慣 可以優化為in查詢 select from order where status in 2,3 2 前導模糊查詢不能使用索引 se...