最近要用hive做一些基础分析,所以整理一下平时遇到的一些语法。另外,将专门整理一个hive的基础教程。

1 在SQL中,count(字段)或者count(1)不统计null值;count(*)统计null值。

2 IF(expr1,expr2,expr3)在SQL中是一个函数,expr1是一个表达式,如果返回true,则返回expr2,否则返回expr3。经常这样使用:

1
2
3
select
count(IF (field1=1 and field is not NULL,1, NULL )) as new_field1
from tableA

3 LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。

4 regexp_extract(string subject, string pattern, int index)

  • 返回值: string
  • 说明: 将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。
  • 第一参数: 要处理的字符串
  • 第二参数: 需要匹配的正则表达式
  • 第三个参数:
    • 0,是返回与之匹配的整个字符串,包含正则表达式部分
    • 1,返回拆分后的第 1 个子串
    • 2,返回拆分后的第 2 个子串

参考