問題:
1氓辣,如果讓你計算5月21號這個日期前3天到后面3天的數(shù)據(jù)和低剔?(不只是5月21號這一天,所有天的前3天加上后3天的和)
2籍茧,對于組內(nèi)排序的順序問題版述?(值相等的時候,排序也相等或是跳過)
解決方法:
針對第一種情況:
需要使用hive的ROWS BETWEEN函數(shù),也叫做WINDOW函數(shù)
其中SUM寞冯、AVG渴析、MIN、MAX吮龄。用于實現(xiàn)分組內(nèi)所有和連續(xù)累積的統(tǒng)計檬某。
如果不指定ROWS BETWEEN,默認為從起點到當(dāng)前行;
如果不指定ORDER BY,則將分組內(nèi)所有值累加;
關(guān)鍵是理解ROWS BETWEEN含義,也叫做WINDOW子句:
PRECEDING:往前
FOLLOWING:往后
CURRENT ROW:當(dāng)前行
UNBOUNDED:起點螟蝙,UNBOUNDED PRECEDING 表示從前面的起點恢恼, UNBOUNDED FOLLOWING:表示到后面的終點
–其他AVG,MIN胰默,MAX场斑,和SUM用法一樣漓踢。
針對第二種情況
以上內(nèi)容轉(zhuǎn)再來自http://lxw1234.com/archives/2015/07/367.htm