分析函数分为函数部分和OVER分析语句部分。
函数部分就是常见的count(),sum()这些函数,
over分析语句是定义一个作用域,让作用域分别进行函数计算。OVER()语句常用PARTITION BY和ORDER BY指定具体的定义域
举个例子
假如一张BOOKVISIT_D表有每天用户访问图书的记录,其中的字段RECORD_DAY,RECORD_HOUR,BOOK_ID分别表示访问日期,访问小时,访问的图书编号。每一行表示记录了一次访问活动。
RECORD_DAYBOOK_ID
201701011
201701012
201701012
201701013
201701023
当我们需要统计每本书每天被访问了多少次时。可以采用下列语句
SELECT RECORD_DAY,BOOK_ID,COUNT(1) OVER(PARTITION BY RECORD_DAY) BOOK_COUNT
FROM BOOKVISIT_D
GROUP BY RECORD_DAY,BOOK_ID
可以得到如下结果:
RECORD_DAYBOOK_IDBOOK_COUNT
2017010111
2017010122
2017010131
2017010231
根据不同的需求可以换其他函数操作。
非常好用的技巧哈哈~