split分割特殊字符需要转义
字段a满足条件统计字段b
表格连接left join并不会维持左表完全不变
- Left join 并不会保留左表完全不变,一对多的会重复保留下来。
- On 后面的条件会先筛选再连接,后再跟where,会对连接的结果再进行筛选
count统计错误的问题
筛选条件中需要加入or NULL,因为count是不统计为NULL的而不是不统计为FALSE的。
Presto这样写是对的,hive这样写是错的
presto和hive的索引问题
presto和hive的索引不一样,presto从1开始,hive从0开始。
SQL通过经纬度计算距离
6378137 * 2 * ASIN(SQRT(POWER(SIN((cast(t1.true_lat as double) - cast(t2.device_lat as double)) * ACOS(-1) / 360), 2)
+ COS(cast(t1.true_lat as double) * ACOS(-1) / 180) * COS(cast(t2.device_lat as double) * ACOS(-1) / 180)
* POWER(SIN((cast(t1.true_lon as double) - cast(t2.device_lon as double)) * ACOS(-1) / 360), 2)))