中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL 難點解決:序列生成

發布時間:2020-07-03 13:35:02 來源:網絡 閱讀:171 作者:raqsoft 欄目:大數據

1、    生成連續整數序列

MySQL8:  with recursive t(n) as (

select 1

union all

select n+1 from t where n<7

)

select * from t;

 

Oracle:select level n

from dual connect by level<=7;

 

集算器 SPL:


A

1

=to(1,7)

A1:構造從 1 到 7 的整數序列

SQL 難點解決:序列生成

 

示例 1:百雞問題,雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、母、雛各幾

MySQL8:  

with recursive jg(n) as (select 1 union all select n+1 from jg where n<100/5),

jm(n) as (select 1 union all select n+1 from jm where n<100/3),

jc(n) as (select 3 union all select n+3 from jc where n<98)

select jg.n jw, jm.n jm, jc.n jc

from jg cross join jm cross join jc

where jg.n*5+jm.n*3+jc.n/3=100 and jg.n+jm.n+jc.n=100

      

集算器 SPL:


A

1

=to(100/5)

2

=to(100/3)

3

=33.(~*3)

4

=create(jw,jm,jc)

5

>A1.run(A2.run(A3.run(if(A1.~+A2.~+A3.~==100   && A1.~*5+A2.~*3+A3.~/3==100,A4.insert(0,A1.~,A2.~,A3.~)))))

A1:構造1到20的整數序列

A2:構造1到33的整數序列

A3:構造1到99且步長為3的整數序列

A4:創建數據結構為(jw,jm,jc)的序表

A5:對A1、A2、A3的數據進行嵌套循環,若滿足于A1成員+A2成員+A3成員==100且A1成員*5+A2成員*3+A3成員/3==100則追加到A4序表中

SQL 難點解決:序列生成

 

示例2:將指定列中冒號分隔的串劃分成多行

Oracle:

with t(k,f) as (select 1 , 'a1:a2:a3' from dual

union all select 2, 'b1:b2' from dual),

t1 as (select k,f, length(f)-length(replace(f,':',''))+1 cnt from t),

t2 as (select level n from dual connect by level<=(select max(cnt) from t1)),

t3 as (select t1.k, t1.f, n, cnt,

case when n=1 then 1 else instr(f,':',1,n-1)+1 end p1, 

case when n=cnt then length(f)+1 else instr(f,':',1,n) end p2

from t1 join t2 on t2.n<=t1.cnt)

select k,substr(f,p1,p2-p1) f from t3 order by k;

 

集算器 SPL:


A

1

=create(k,f).record([1,"a1:a2:a3",2,"b1:b2"])

2

>A1.run(f=f.split(":"))

3

=A1.(f.new(A1.k:k,   ~:f))

4

=A3.conj()

A1:創建數據結構為(k,f)的序表,并追加2條記錄(1, “a1:a2:a3)和(2,”b1:b2”)

A2:將A1的字段f用冒號劃分成序列并重新賦值給字段f

A3:針對A1每條記錄構造數據結構為(k,f)的序表,并根據字段f中成員構造記錄(A1.k,f成員)追加到此序表中

SQL 難點解決:序列生成

2、    生成連續日期序列

MySQL8:

with recursive

t(d) as (select date'2018-10-03'

union all

select d+1 from t where d<date'2018-10-09')

select d,dayofweek(d) w from t;

 

集算器 SPL:


A

1

=periods("2018-10-03",   "2018-10-09")

A1:生成2018-10-03到2018-10-09的日期序列

SQL 難點解決:序列生成

      

示例:列出2015-01-03到2015-01-07每天的銷量匯總

MySQL8:

with recursive

t(d,v) as (select date'2015-01-04',30

union all select date'2015-01-06',50

union all select date'2015-01-07',50

union all select date'2015-01-03',40

union all select date'2015-01-04', 80),

s(d) as (select date'2015-01-03'

union all

select d+1 from s where d<date'2015-01-07')

select s.d, sum(t.v) v

from s left join t on s.d=t.d

group by s.d;

 

集算器 SPL:


A

1

[2015-01-04, 30,   2015-01-06,50, 2015-01-07,50, 2015-01-03,40, 2015-01-04,80]

2

=create(d,v).record(A1)

3

=periods("2015-01-03",   "2015-01-07")

4

=A2.align@a(A3,d)

5

=A4.new(A3(#):d,   ~.sum(v):v)

A4:A2中記錄按字段d的值對齊到A3

A5:根據A4和A3對位構造統計后的序表

SQL 難點解決:序列生成

3、    生成連續的工作日(不包含周六周日)序列

MySQL8:

with recursive

t(d) as (select date'2018-10-03'

union all

select d+1 from t where d<date'2018-10-09')

select d,dayofweek(d) w from t

where dayofweek(d)<=5;

 

集算器 SPL:


A

1

=workdays(date("2018-10-03"),   date("2018-10-09"))

2

=A1.new(~:d,day@w(~)-1:w)

       A1:構造從2018-10-03到2018-10-09不包含周六周日的日期序列

       A2:根據A1構造日期及相應周幾的序表

       SQL 難點解決:序列生成

4、    根據序列生成表

MySQL8:

with recursive t1(n) as (select 1 union all select n+1 from t1 where n<14),

t2(n, name) as (select n, concat('a',n) name from t1)

select max(if(n%4=1, name, null)) f1,

max(if(n%4=2, name, null)) f2,

max(if(n%4=3, name, null)) f3,

max(if(n%4=0, name, null)) f4

from t2

group by floor((n+3)/4);

 

集算器 SPL:


A

1

=to(14).("a"/~)

2

=create(f1,f2,f3,f4).record(A1)

SQL 難點解決:序列生成

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

眉山市| 田阳县| 邹平县| 滦南县| 阿拉善左旗| 竹北市| 镇赉县| 县级市| 重庆市| 宜昌市| 杭州市| 衡南县| 崇义县| 鲜城| 平凉市| 宾川县| 方城县| 嘉兴市| 禄劝| 宁阳县| 灵台县| 鄂伦春自治旗| 林口县| 合山市| 姚安县| 四子王旗| 杂多县| 汶上县| 遂川县| 云安县| 科技| 襄汾县| 大港区| 白城市| 上饶市| 株洲县| 开阳县| 都兰县| 陆良县| 宁陵县| 诸暨市|