sql redshift 常用函式

2021-08-31 18:31:52 字數 2942 閱讀 9613

percentile_cont(《表示式1>)

within group(order by 《表示式2> [ asc | desc ] )

over (< partition by 表示式3> )

引數:表示式1:

此處只能輸入乙個大於等於0 小於等於1的浮點數

如果輸入null ,則返回錯誤提示資訊

如果輸入大於1 或小於0,則返回資料超過資料範圍的提示資訊

引數:表示式2:

排序字段,此處只可使用單個字段作為排序標準(預設值公升序)

引數:表示式3

將結果集,以此為群組,進行多組結果集的百分比計算

返回值:

float(53)

select

distinct

*from

(select shop_id, shop_name,

percentile_cont(

0.1)

within

group

(order

by population desc

)over

(partition

by shop_id,shop_name) p01,

percentile_cont(

0.3)

within

group

(order

by population desc

)over

(partition

by shop_id,shop_name) p03,

percentile_cont(

0.6)

within

group

(order

by population desc

)over

(partition

by shop_id,shop_name) p06

from analysis_1810.t_meshpoi_pop_2018_lonlat

where shop_id in

('174'

,'175'

,'25'

))

row_number() over(partition by ic_infomation, dayflag order by popday)

#char -> date

select to_date(

'2004-11-27'

,'yyyy-mm-dd');

##dateadd( datepart, interval, )

select dateadd(

day,1,

'20080228');

#trunc(timestamp): timestamp -> date

select trunc(dateadd(

day,0,

'20080228'))

;# 20080101(char) -> 2008-01-01(date)

select

date

('20080101'

)#ymd: char. 格式是'yyyymmdd'

#下面這條執行後,會計算ymd的前一天,返回型別是date

#如果ymd為'20191021',結果就是'2019-10-20'

trunc(dateadd(

day,-1

,to_date(ymd,

'yyyymmdd'))

),

我們有乙個表,

drop

table

ifexists analysis_201028_sbhorks.m_schedule;

create

table analysis_201028_sbhorks.m_schedule(

ymd varchar encode zstd,

--20200903

starttime varchar encode zstd,

--18:00:00

starthour varchar encode zstd,

--18

divvarchar encode zstd --night

);

算出每一行的2小時前和5小時後。

select ymd+

' '+starttime,

dateadd(

hour,-

2, cast(ymd+

' '+starttime as

timestamp))

,dateadd(

hour,5

, cast(ymd+

' '+starttime as

timestamp))

from analysis_201028_sbhorks.m_schedule

結果是這樣的→

20190903-18:00:00	2019-09-03 16:00:00	2019-09-03 23:00:00

20190904-18:00:00 2019-09-04 16:00:00 2019-09-04 23:00:00

20190905-18:00:00 2019-09-05 16:00:00 2019-09-05 23:00:00

20190906-18:00:00 2019-09-06 16:00:00 2019-09-06 23:00:00

select

right

('0000'

+ cast(

123as

varchar(10

)),4

);select

right

('0000'

+'123',4

);

python常用函式 python常用函式精講

返回值為bool型別的函式 bool是boolean的縮寫,只有真 true 和假 false 兩種取值 bool函式只有乙個引數,並根據這個引數的值返回真或者假。引數如果預設,則返回false 引數轉換使用標準的邏輯測試表示式 傳入布林型別時,按原值返回 傳入字串時,空字串返回false,否則返回...

c mysql常用函式 mysql常用函式

1.concat s1,s2,sn 函式 把傳入的引數連線成為乙個字串。例 mysql select concat aa bb cc concat a null concat aa bb cc concat a null aabbcc null 1 row in set 0.00 sec 注意 任何...

mysql 常用函式迴圈 mysql 常用函式

mysql 常用函式 數字函式 ceiling x 返回大於x的最小整數值 floor x 返回小於x的最大整數值 truncate x,y 返回數字x截短為y位小數的結果 僅僅只是截斷,不會進行四捨五入計算 聚合函式 group concat col 返回由屬於一組的列值連線組合而成的結果 字串函...