row_number() over

语法:ROW_NUMBER() OVER(PARTITION BY COLUMNORDER BY COLUMN)

row_number() OVER (PARTITION BY COL1 ORDERBY COL2)表示根据COL1分组,在分组内部根据COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(该编号在组内是连续并且唯一的)。

分组统计排序

ROW_NUMBER() OVER (PARTITION BY video_type_name ORDER BY count(course_name) DESC) AS rnk  https://www.cnblogs.com/zhengzeze/p/5583762.html

select count(course_name) total,video_type_name,course_name,

ROW_NUMBER() OVER (PARTITION BY video_type_name ORDER BY count(course_name) DESC) AS rnk

from video_see_records

group by video_type_name,course_name

nvl

NVL(expr1, expr2): 
1、空值转换函数; 
2、类似于mysql-nullif(expr1, expr2),sqlserver-ifnull(expr1, expr2)。

备注: 
1、如果expr1为NULL,返回值为 expr2,否则返回expr1。 
2、适用于数字型、字符型和日期型,但是 expr1和expr2的数据类型必须为同类型。

from_unixtime

hive中的from_unixtime()函数,可以把时间戳格式的时间,转化为年月日时分秒格式的时间。

from_unixtime的参数要求为整数,且单位为秒。

如果从业务系统拿到的时间戳格式的时间单位为毫秒,则需要先将它转化为秒,方法如下

from_unixtime( int (timestamp_in_millisecond / 1000))

datediff 两个时间参数的日期之差
   
hive官网函数地址 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
网速灾备。。 https://blog.csdn.net/hello_java_lcl/article/details/106690120
为方便看懂转换了中文 hive 函数总结
union 去重

 

相关文章: