数据准备:
zhangsa dfsadsa323 new 67.1 2
lisi 543gfd old 43.32 1
wanger 65ghf new 88.88 3
liiu fdsfagwe new 66.0 1
qibaqiu fds new 54.32 1
wangshi f332 old 77.77 2
liwei hfd old 88.44 3
wutong 543gdfsd new 56.55 6
lilisi dsfgg new 88.88 5
qishili fds new 66.66 5
关系运算:
-
String的比较需要注意(常用的时间比较可以先使用to_date()之后再进行比较)
##注意: String 的比较要注意(常用的时间比较可以先 to_date 之后再比较)
select long_time>short_time, long_time<short_time,long_time=short_time, to_date(long_time)=to_date(short_time)
from
(
select '2017-01-11 00:00:00' as long_time, '2017-01-11' as short_time
)bb;
result:
true false false true
-
Like与rlike、regexp
-
LIKE
语法: A LIKE B
描述: 字符串A符合表达式B的正则语法,则为TRUE;否则为FALSE. B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。
select * from order_detail where device_id like 'fd_' and device_id like '%ds'; 结果: 1 qibaqiu fds new 54 1 2 qishili fds new 67 5
-
RLIKE
语法: A RLIKE B
描述: 字符串A符合JAVA正则表达式 B 的正则语法,则为 TRUE;否则为 FALSE。 -
REGEXP
语法: A REGEXP B
描述: 功能与 RLIKE 相同
集合统计函数:
- 个数统计:count 总和统计:sum
- 语法: count(*), count(expr), count(DISTINCT expr[, expr_.])
- 说明:
count(*)统计检索出的行的个数,包括 NULL 值的行;
count(expr)返回指定字段的非空值的个数;
count(DISTINCT expr[, expr_.])返回指定字段的不同的非空值的个数
- 说明:
- sum(col), sum(DISTINCT col)
- 说明: sum(col)统计结果集中 col 的相加的结果; sum(DISTINCT col)统计结果中 col 不同值
- 语法: count(*), count(expr), count(DISTINCT expr[, expr_.])
select
count(*),count(user_type),count(distinct user_type),
sum(sales),sum(distinct sales)
from order_detail;
- 平均值统计:avg 最小值统计:min 最大值统计:max
- 标准差:stddev_samp, stddev, stddev_pop
- stddev_pop <==> stddev
- 方差:var_samp, var_pop
- 当我们需要真实的标准差/方差的时候最好是使用: stddev stddev_pop var_pop
而只是需要得到少量数据的标准差/方差的近似值可以选用: stddev_samp var_samp
- 当我们需要真实的标准差/方差的时候最好是使用: stddev stddev_pop var_pop
- 百分位数: percentile 近似百分位数: percentile_approx 直方图: histogram_numeric
- 语法: percentile_approx(DOUBLE col, p [, B])
- 返回值: double
- 说明: 求近似的第 pth 个百分位数, p 必须介于 0 和 1 之间,返回类型为 double,但是col 字段支持浮点类型。参数 B 控制内存消耗的近似精度, B越大,结果的准确度越高。默认为 10,000。当 col 字段中的 distinct 值的个数小于 B 时,结果为准确的百分位数
- 后面可以输入多个百分位数,返回类型也为 array,其中为对应的百分位数。
复杂类型访问操作及统计函数:
测试数据集:
tony 1338 hello,woddd 1,2 a1,a2,a3 k1:1.0,k2:2.0,k3:3.0 s1,s2,s3,4
mark 5453 kke,ladyg