ios10升级-pdf缩小打印

videoengine log
2023年4月4日发(作者:微信 连接失败)

clickhouse函数

聚合函数

常⽤函数

count

返回记录条数。

SELECTcount()FROMtable

注:如果求COUNT(DISTINCTx),则使⽤uniq函数

any(x)

返回遇到的第⼀个值

备注:待补充

anyHeavy(x)

通过算法,得到⼀个经常出现的值.

⽰例

SELECTanyHeavy(AirlineID)ASresFROMontime

anyLast(x)

返回最后遇到的值

min(x)

返回最⼩值

max(x)

返回最⼤值

argMin(arg,val)

TBD

argMax(arg,val)

TBD

sum(x)

求和

仅对数值有效

sumWithOverflow(x)

求和

如果超过上限,则报错

sumMap(key,value)

对于相同的key,对其value求和

⽰例

输⼊

CREATETABLEsum_map(

dateDate,

timeslotDateTime,

statusMapNested(

statusUInt16,

requestsUInt64

)

)ENGINE=Log;

INSERTINTOsum_mapVALUES

('2000-01-01','2000-01-0100:00:00',[1,2,3],[10,10,10]),

('2000-01-01','2000-01-0100:00:00',[3,4,5],[10,10,10]),

('2000-01-01','2000-01-0100:01:00',[4,5,6],[10,10,10]),

('2000-01-01','2000-01-0100:01:00',[6,7,8],[10,10,10]);

SELECT

timeslot,

sumMap(,ts)

FROMsum_map

GROUPBYtimeslot

查询

┌────────────timeslot─┬─sumMap(,ts)─┐

│2000-01-0100:00:00│([1,2,3,4,5],[10,10,20,10,10])│

│2000-01-0100:01:00│([4,5,6,7,8],[10,10,20,10,10])│

└─────────────────────┴──────────────────────────────────────────────┘

avg(x)

平均值

uniq(x)

求近似的排重值,适⽤于数值,字符串,⽇期,⽇期时间,以及multiple和tuple参数

使⽤了⾃适合抽样算法:在65535下⾮常准确和⾼效。

uniqCombined(x)

求近似的排重值,适⽤于数值,字符串,⽇期,⽇期时间,以及multiple和tuple参数

使⽤了组合的三个算法:数组,hash表和表。

内存消耗⽐uniq要⼩⼏倍,同时精度⾼⼏倍,但是性能⼀般⽐uniq慢,虽然有时也会快。最⼤⽀持到96KiB个状态.

uniqHLL12(x)

使⽤HyperLogLog算法来做排重值的近似计算,⽀持2.5KB个状态.

uniqExact(x)

计算精确的排重值.

groupArray(x),groupArray(max_size)(x)

创建⼀个数组值

我⾃⼰的⽰例

:)selectstr_chema_nested;

SELECTstr_nest.y

FROMschema_nested

┌─str_nest.y───────────────┐

│['search','mock1@']│

│['image','mock1@']│

│['video','mock2@']│

│['image','mock2@']│

└──────────────────────────┘

┌─str_nest.y──────────────────────────────┐

│['search','mock1@','news']│

│['image','mock1@','search','news']│

└─────────────────────────────────────────┘

┌─str_nest.y─────────────────────────────┐

│['video','mock2@']│

│['image','mock2@','music','news']│

└────────────────────────────────────────┘

d:0.003sec.

:)selectgroupArray(str_nest.y)fromschema_nested

SELECTgroupArray(str_nest.y)

FROMschema_nested

┌─groupArray(str_nest.y)────────────────────────────────────────────────────────────────────────────────────────────────────────────

│[['search','mock1@'],['image','mock1@'],['video','mock2@'],['image','mock2@'],['search','mock1@','news'],['image','mock1@

└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

d:0.003sec.

:)selectgroupArray(3)(str_nest.y)fromschema_nested

SELECTgroupArray(3)(str_nest.y)

FROMschema_nested

┌─groupArray(3)(str_nest.y)──────────────────────────────────────────────────┐

│[['search','mock1@'],['image','mock1@'],['video','mock2@']]│

└────────────────────────────────────────────────────────────────────────────┘

d:0.002sec.

groupArrayInsertAt

TBD

groupUniqArray(x)

⽣成排重的数组,内存消耗与uniqExact⽅法相同

:)selectgroupUniqArray(str_nest.y)fromschema_nested

SELECTgroupUniqArray(str_nest.y)

FROMschema_nested

──────groupUniqArray(str_nest.y)───────────────

[['image','mock2@','music','news'],['image','mock1@'],['image','mock2@'],['video','mock2@'],['image','mock1@','search','news'],['se

────────────────────────────────────────────────

d:0.004sec.

quantile(level)(x)

估算百分位点值.

level是⼀个0⾄1之间的常数,但是不要为0或者1.0或者1时,使⽤min,max⽅法最合适.

quantileDeterministic(level)(x,determinator)

TBD

quantileTiming(level)(x)

TBD

quantileTimingWeighted(level)(x,weight)

TBD

quantileExact(level)(x)

TBD

quantileExactWeighted(level)(x,weight)

TBD

quantileTDigest(level)(x)

TBD

median

求中位数

每⼀个百分位点⽅法,都对应着⼀个求中位数的⽅法,如

median,medianDeterministic,medianTiming,medianTimingWeighted,medianExact,medianExactWeighted,medianTDigest

quantiles(level1,level2,...)(x)

求多个百分位点

也对应着⼀系列的⽅法quantiles,quantilesDeterministic,quantilesTiming,quantilesTimingWeighted,quantilesExact,

quantilesExactWeighted,quantilesTDigest

varSamp(x)

求⽅差,结果是随机变量的⽅差的⽆偏估计

varPop(x)

求总体⽅差

stddevSamp(x)

为varSamp(x)的平均根

stddevPop(x)

为varPop(x)的平均根

topK

使⽤了算法来计算topK

同时使⽤了算法来进⾏reduceandcombine.

topK(N)(column)

:)selecttopK(3)(str_nest.y)fromschema_nested

SELECTtopK(3)(str_nest.y)

FROMschema_nested

┌─topK(3)(str_nest.y)────────────────────────────────────────────────────────┐

│[['video','mock2@'],['search','mock1@'],['image','mock1@']]│

└────────────────────────────────────────────────────────────────────────────┘

d:0.004sec.

covarSamp(x,y)

计算协⽅差

covarPop(x,y)

计算总体协⽅差

corr(x,y)

计算Pearson相关系数

含参聚合函数

学习⾃

sequenceMatch(pattern)(time,cond1,cond2,...)

按顺利先后匹配事件

pattern:类似正则表达式的匹配规则

time:事件发⽣时间

cond1,cond2:最多32个,来标识条件是否满⾜

返回值

0:不匹配

1:匹配

⽰例

sequenceMatch('(?1).*(?2)')(EventTime,URLLIKE'%company%',URLLIKE'%cart%')

是否存在事件链,即先访问了company的事件,再访问了cart的事件

也可以通过别的聚合⽅法来表⽰

minIf(EventTime,URLLIKE'%company%')

sequenceCount(pattern)(time,cond1,cond2,...)

逻辑与sequenceMatch函数⼀样,但是返回值为chain的编号.

TBD

uniqUpTo(N)(x)

返回N个排重值数⽬,如果实际值⼤于N,则返回N+1

聚合函数后缀

-If

任何聚合函数都可以通过增加后缀If,来增加⼀个外部参数条件.聚合函数仅处理满⾜条件的记录⾏.如果条件⼀次也没有触发,则返回默认

值(通常是0或者是空字符串)

这样可以⼀次处理多个聚合条件,⽽不需要转换为⼦查询或者JOIN来计算.

⽰例

sumIf(column,cond),countIf(cond),avgIf(x,cond),quantilesTimingIf(level1,level2)(x,cond),argMinIf(arg,val,cond)

-Array

任何聚合函数都可以通过增加后缀Array,来使原来的参数类型T变为新的参数类型Array(T)。

在处理时,原来的聚合函数会依次处理Array中的每⼀项.

⽰例

sumArray(arr):对Arrays中的所有元素进⾏求和,即sum(arraySum(arr))

uniqArray(arr):对Arrays中的所有元素进⾏排重值,即uniq(arrayJoin(arr))

-If和-Array可以组合使⽤,但是Array必须在前,If在后。例如

uniqArrayIf(arr,cond)

quantilesTimingArrayIf(level1,level2)(arr,cond)

-State

返回的不是结果值,返回的是中间状态.这个是与AggregatingMergeTree来配合使⽤的.

-Merge

聚合函数会把中间状态会为参数,进⾏Merge,来完成聚合,返回最终的结果值.

-MergeState

与-Merge类似,但是返回的不是结果值,⽽是类似于-State的中间状态.

-ForEach

将对table使⽤的聚合函数,转换为对数组的聚合函数。对数组的每⼀项进⾏处理,返回⼀个结果数组。

如:

sumForEach([1,2],[3,4,5],[6,7])

结果为

[10,13,5]

这个⽹站挺多clickhouse相关的,可以参考下

更多推荐

videoengine log