IQ库注意事项
- case when …函数返回值必须跟字段类型一致(数值型)
- 开窗函数如row_number() over()不能参与where、group语句(需要根据开窗函数筛选分组时,可添加嵌套查询,建立外层查询,将开窗函数的返回结果作为独立字段进行相关查询)
- 聚合函数存在于子查询时,order by必须放在最外层
- 字符串拼接可直接用+或||:‘A’+‘B’ or ‘A’||‘B’
字段别名踩坑
clickhouse、AnalyticDB MySQL这两个库都是列式存储,全索引。所以对于字段要求很严谨,注意在查询与别名设置时,不要使用重复名称
示例
select
data_date
,brand
,live_room_id
,flow_type
,'订单中心' flow_dtl1 #这个字段别名与json中的flow_dtl进行区分,若一样,则此字段会被默认为json类型
,json_extract(flow_dtl,'$.订单中心') flow_ratio
from kscs_ods.ods_ec_compass_live_flow_stats
AnalyticDB MySQL踩坑
- 时间戳转换FROM_UNIXTIME
有时候要转换时间戳的字段值并不是数字样式就可以直接转,尤其是json返回的值,记得先*1.0再转。而且一定要注意是秒还是毫秒级的转换
AnalyticDB MySQL实例
先乘1.0再/1000
date_format(FROM_UNIXTIME(json_extract