sql或hivesql 入门碰到的错误总结

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)))

你可能感兴趣的:(sql或hivesql 入门碰到的错误总结)