前言:資料治理中難免會有一些髒資料比如空值,我們一般通過取平均值,取眾數,取就近數等方法來填補這些空值,這裡用到的方法就是取最近值。現有一張表(時間、值1、值2)如下:
要求:如果某列的字段在該日期為空值,則查詢時結果顯示為之前最接近日期的非空值
最終圖如下:
原始碼:
create
table table3
(ldate date
notnull
, value1 int
null
, value2 int
null);
insert
into table3 values
('2021-01-07'
,600
,400);
insert
into table3 values
('2021-01-06'
,null
,300);
insert
into table3 values
('2021-01-05'
,null
,350);
insert
into table3 values
('2021-01-04'
,450
,null);
insert
into table3 values
('2021-01-03'
,300
,320);
insert
into table3 values
('2021-01-02'
,null
,450);
insert
into table3 values
('2021-01-01'
,250
,null);
select
*from table3;
sql:
select
a.ldate,
(select value1
from table3 b
where b.ldate<=a.ldate
and b.value1 is
notnull
order
by a.ldate
limit
1) value1,
(select value2
from table3 b
where b.ldate<=a.ldate
and b.value2 is
notnull
order
by a.ldate
limit
1) value2
from table3 a
總結:歡迎有其他方法的小夥伴來討論! SQL趣味練習題
第一中情況 create table renwu name varchar 20 not null,fahter varchar 20 insert into renwu values 小甲 大甲 insert into renwu values 大甲 老甲 insert into renwu na...
SQL基礎練習題
sql 基礎入門50題 1.選擇分數介於85 100,70 85,60 70,0 60分數段之間的人數,課程標號,課程名稱和所佔百分比 select distinct f.c name,a.c id,b.85 100 b.百分比,c.70 85 c.百分比,from score a left joi...
C練習題 (三)
1.用標準c程式設計 找出整形數字1 100之間的素數,並列印出來 素數 除了1和自己本身可以被整除 include void main while c 0 3 用標準c程式設計 輸出楊輝三角形的前10行 三角形的每一行是 x y n的展開式各項的係數。例如 第一行是 x y 0,其係數為1 第二行...