公式列表
跳到导航
跳到搜索
公式列表
下面各种公式列表主要是运用在搜索功能模块的添加公式框里。
聚合公式
公式 | 说明 | 样例 |
average | 求度量的平均值 | average(revenue) |
count | 返回指定列的行数 | count(product) |
cumulative_average | 输入一个度量和一个或多个属性求按指定属性排序的累积平均值 | cumulative_average(revenue,orderdate,state) |
cumulative_max | 输入一个度量和一个或多个属性求按指定属性排序的累积最大值 | cumulative_max(revenue, state) |
cumulative_min | 输入一个度量和一个或多个属性求按指定属性排序的累积最小值 | cumulative_min (revenue, campaign) |
cumulative_sum | 输入一个度量和一个或多个属性求按指定属性排序的累积之和 | cumulative_sum (revenue, order date) |
group_average | 输入一个度量和多个属性求按指定属性分组对度量求平均值 | group_average(revenue,customer region, state) |
group_count | 输入一个度量和多个属性求按指定属性分组对度量求计数 | group_count(revenue,customer region ) |
group_max | 输入一个度量和多个属性求按指定属性分组对度量求最大值 | group_max (revenue, customer region) |
group_min | 输入一个度量和多个属性求按指定属性分组对度量求最小值 | group_min (revenue, customer region) |
group_sum | 输入一个度量和多个属性求按指定属性分组对度量求和 | group_sum (revenue, customer region) |
group_unique_count | 输入一个度量和多个属性求按指定属性分组对度量求非重复计数 | group_unique_count(revenue,customer region) |
group_variance | 输入一个度量和多个属性求按指定属性分组对度量求均方差 | group_variance(revenue,customer region) |
max | 求度量的最大值 | max (sales) |
min | 求度量的最小值 | min (sales) |
moving_average | 输入一个度量和一个或者多个属性,两个数字(定义窗口范围)分析度量的平均值 | moving_average(revenue,2,1,customer region) |
moving_sum | 输入一个度量和一个或者多个属性,两个数字(定义窗口范围)分析度量的求和 | moving_sum(revenue,2,1,customer region) |
stddev | 求度量的标准差 | stddev (revenue) |
sum | 对度量求和 | sum (revenue) |
unique_count | 对属性或者度量进行非重复计数 | unique count (customer) |
variance | 求度量的均方差 | variance (revenue) |
sum_if | 按条件求和 | sum_if(1>0,revenue) |
average_if | 按条件求平均值 | average_if(1>0,revenue) |
variance_if | 按条件求均方差 | variance_if(1>0,revenue) |
stddev_if | 按条件求标准差 | stddev_if(1>0,revenue) |
max_if | 按条件求最大值 | max_if (1>0,revenue) |
min_if | 按条件求最小值 | min_if (1>0,revenue) |
count_if | 按条件计数 | count_if(1>0,revenue) |
unique_count_if | 按条件求非重复计数 | unique_count_if(1>0,revenue) |
转换公式
公式 | 说明 | 样例 |
to_bool | 转换对应的数字为boolean类型 | to_bool (0) = false |
to_date | 把指定的数字和字符串类型的日期值转换成日期格式(impala只支持'%Y-%m-%d %H:%M:%S' 格式的字符串转换) | to_date (date_sold, '%Y-%m-%d') |
to_double | 把指定的数字转换为double类型 | to_double (revenue * .01) |
to_integer | 把指定的数字转换为integer类型 | to_integer (price + tax - cost) |
to_string | 把指定的输入转为字符串 | to_string (revenue - cost) |
日期公式
公式 | 说明 | 样例 |
add_days | 计算指定时间加指定天数的值 | add_days (invoiced, 30) |
date | 计算指定时间的日期部分 | date (home visit) |
day | 计算指定时间是月内的哪一天(1~31) | day (date ordered) |
day_number_of_week | 计算指定时间是周内的哪一天(1~7对应周一到周日) | day_number_of_week (shipped) |
day_number_of_year | 计算指定时间是年内的哪一天(1~366) | day_number_of_year (invoiced) |
day_of_week | 计算指定时间是周几(Monday~Sunday) | day_of_week (serviced) |
diff_days | 用前一个日期减后一个日期计算天数的差值,差值超过12小时算一天 | diff_days (purchased, shipped) |
diff_time | 用前一个日期减后一个日期计算秒数差值 | diff_time (clicked, submitted) |
hour_of_day | 计算时间是当天的几点(0~23) | hour_of_day (recieved) |
is_weedend | 指定日期是否是周末 | is_weekend (emailed) |
month | 计算指定月份(January~December) | month (date ordered) |
month_number | 计算指定日期是当年的第几个月(1~12) | month_number (date ordered) |
start_of_month | 计算指定日期所属月的开始日期 | start_of_month (shipped) |
start_of_quarter | 计算指定日期所属季度的开始日期 | start_of_quarter (shipped) |
start_of_week | 计算指定日期所属周的开始日期 | start_of_week (shipped) |
start_of_year | 计算指定日期所属年的开始日期 | start_of_year (shipped) |
time | 计算指定日期的时间部分 | time(call begin) |
year | 计算指定日期年份 | year (shipped) |
混合函数
公式 | 说明 | 样例 |
!= | 如果两值不等返回true否则返回false | revenue != 10000 |
< | 如果前一个值小于后一个值返回true否则返回false | revenue < 10000 |
<= | 如果前一个值小于等于后一个值返回true否则返回false | revenue <= 10000 |
= | 如果两值相等返回true否则返回false | revenue = 10000 |
> | 如果前一个值大于后一个值返回true否则返回false | revenue > 10000 |
>= | 如果前一个值大于等于后一个值返回true否则返回false | revenue >= 10000 |
greatest | 返回两值中较大的值 | greatest (q1 revenue, q2 revenue) |
least | 返回两值中较小的值 | least (q1 revenue, q2 revenue) |
数字函数
公式 | 说明 | 样例 |
* | 求两值的乘积 | price*quantity |
求两值的和 | price+shipping | |
求两值的差 | revenue-tax | |
/ | 求两值的商 | markup/retail price |
^ | 乘方 | width^2 |
abs | 求绝对值 | abs(profit) |
acos | 反余弦 | acos(0.5) |
asin | 反正弦 | asin(0.5) |
atan | 反正切 | atan(1) |
atan2 | 反正切 | atan2(1,2) |
cbrt | 立方根 | cbrt(27) = 3 |
ceil | 返回大于等于指定数字的最小整数 | ceil(5.9) = 6 |
cos | 余弦 | cos(0.5) |
cube | 立方 | cube(3) = 27 |
exp | 自然常数e的乘方 | exp(2) |
exp2 | 2的乘方 | exp2(3) |
floor | 返回小于等于指定数字的最大整数 | floor(3.1)=3 |
ln | 自然对数 | ln(3) |
log10 | 以10为底的对数 | log10(3) |
log2 | 以2为底的对数 | log2(3) |
mod | 求模 | mod(8,3) |
pow | 乘方 | pow(2,3) |
random | 0~1之间的随机数 | random() |
round | 四舍五入 | round(36,10) |
sign | 如果数字大于零返回1小于零返回-1等于0返回0 | sign(-250) |
sin | 正弦 | sin(0.5) |
spherical_distance | 返回两个地理位置的距离 | spherical_distance |
sq | 平方 | sq(8) = 64 |
sqrt | 开方 | sq(64) = 8 |
tan | 正切 | tan(0.5) |
逻辑操作符
公式 | 说明 | 样例 |
and | 并逻辑运算 | 1=1 and 2>3 |
if..then..else | 逻辑判断 | if 2>3 then 'bigger' else 'not bigger' |
ifnull | 如果值1为null返回值2,否则返回值1 | ifnull(cost, 'unknown') |
isnull | 如果值为null返回true否则返回false | isnull(null) = true |
not | 非逻辑运算 | not (2>3) = true |
or | 或逻辑运算 | 1=1 or 2>3 |
文本操作函数
公式 | 说明 | 样例 |
concat | 字符串链接操作 | concat('test', '123') = 'test123' |
contains | 如果字符串1包含字符串2返回true否则返回false | contains ('broomstick', 'room') = true |
edit_distance | 把字符串1编辑成字符串2编辑字符串1最小的字符数 | 当前公式暂时不可用 |
edit_distance_with_capAccepts | 同上,增加cap参数 | 当前公式暂时不可用 |
similar_to | 字符串类似匹配到为true没有匹配到为false | 当前公式暂时不可用 |
similarity | 求两个字符串的匹配度 | 当前公式暂时不可用 |
spells_like | 是否两个字符串拼写类似 | 当前公式暂时不可用 |
strlen | 字符串长度 | strlen ('smith') = 5 |
strpos | 第二个字符串在第一个字符串中出现的位置 | strpos ('haystack_with_needles', 'needle') = 14 |
substr | 获取字符串子串 | substr ('persnickety', 4, 7) = snicket |