Hive 求月销售额和总销售额

求月销售额和总销售额
a,01,150
a,01,200
b,01,1000
b,01,800
c,01,250
c,01,220
b,01,6000
a,02,2000
a,02,3000
b,02,1000
b,02,1500
c,02,350
c,02,280
a,03,350
a,03,250

create table t_store(
name string comment ‘店铺‘,
months int comment ‘月份‘,
money int comment ‘金额‘
)
row format delimited fields terminated by ",";
load data local inpath "/root/t_store.txt" into table t_store;

create view v_t_store
as
select name,months,sum(money) money
from t_store
group by name,months;

select name,months,money
,sum(money) over(partition by name order by months rows between unbounded preceding and current row) as t_money
from v_t_store;

a 1 350 350
a 2 5000 5350
a 3 600 5950
b 1 7800 7800
b 2 2500 10300
c 1 470 470
c 2 630 1100

原文地址:http://blog.51cto.com/6000734/2321914

时间: 2024-10-15 11:54:16

Hive 求月销售额和总销售额的相关文章

SQL Server求解最近多少销售记录的销售额占比总销售额的指定比例

看园中SQL Server大V潇潇隐者的博文,发现一边文就是描述了如标题描述的问题. 具体的问题描述我通过潇潇隐者的博文的截图来阐释: 注意:如果以上截取有所侵权,也请作者告知,再次感谢. 当看到这个问题的,我想到了是窗口函数提供的累积汇总有关的解决方案. 准备测试数据,有关的T-SQL代码如下: 1 IF OBJECT_ID(N'dbo.SalesData', N'U') IS NOT NULL 2 BEGIN 3 DROP TABLE dbo.SalesData; 4 END 5 GO 6

hdu4848 求到达每个点总时间最短(sum[d[i]])。

开始的时候是暴力dfs+剪枝,怎么也不行.后来参考他人思想: 先求出每个点之间的最短路(这样预处理之后的搜索就可以判重返回了),截肢还是关键:1最优性剪枝(尽量最优:目前的状态+预计还有的最小时间>min就return !),2:可行性截肢:如果当前状态+预计状态已经不可行,return.(注意考虑是 continue,还是 return !).以及放的位置!在出口放的效果一般好一些(不在下次循环内部)(理由:若该状态是后面的状态进入的,前面的会dfs到很深,所以,放在最前面,一起判断下,不行就

查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据

select total_user from a_user_no where date_time=(select max(date_time) from a_user_no  where '2013-05'+ "'=to_char(date_time,'yyyy-mm')); 通过max 函数来去5月份出现最大日期的数据 查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据,布布扣,bubuko.com

【统计商户24个月连续流水总月数存储过程】

[统计商户24个月连续流水总月数存储过程]删除存储过程SQL> drop procedure checklen; Procedure dropped创建存储过程SQL> CREATE OR REPLACE PROCEDURE checklen(val in varchar2,resultval out number) as    maxlen number;    nowlen number;    begin    maxlen := 0;    nowlen := 0;        fo

hive 求差集

hive求差集的方法 1.什么是差集 set1 - set2,即去掉set1中存在于set2中的数据. 2.hive中计算差集的方法,基本是使用左外链接. 直接上代码 select * from table1 t1 left outer join table2 t2 on t1.id = t2.id where t2.id = null; 3.一般来说我们要先去重,使得两个表都变成集合,元素唯一. 先对table2(右表)去重然后再计算差集. select * from ( select * f

高速查询hive数据仓库表中的总条数

Author: kwu 高速查询hive数据仓库中的条数.在查询hive表的条数,通常使用count(*).可是数据量大的时候,mr跑count(*)往往须要几分钟的时间. 1.传统方式获得总条数例如以下: select count(*) from ods.tracklog; 执行时间为91.208s 2.与关系库一样hive表也能够通过查询元数据来得到总条数: select d.NAME,t.TBL_NAME,t.TBL_ID,p.PART_ID,p.PART_NAME,a.PARAM_VAL

快速查询hive数据仓库表中的总条数

Author: kwu 快速查询hive数据仓库中的条数,在查询hive表的条数,通常使用count(*),但是数据量大的时候,mr跑count(*)往往需要几分钟的时间. 1.传统方式获得总条数如下: select count(*) from ods.tracklog; 2.与关系库一样hive表也可以通过查询元数据来得到总条数: <pre name="code" class="sql">select d.NAME,t.TBL_NAME,t.TBL_I

HIVE求两个集合的减集

hive中不支持not in的写法,但是可以通过left outer join来替代 写法如下: select a.* from ( select * from rpt_pms_continue where category_level_flag='末级类目' and cart_tracker_id is not null and ds='2015-01-08' ) a left outer join ( select * from pms.cross_sale_path where ds='2

给定有权无向图的邻接矩阵如下,求其最小生成树的总权重,代码。

#include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f const int maxn = 117; int m[maxn][maxn]; int vis[maxn], low[maxn]; /* 对于这道题目来将,m就是临接矩阵,vis是访问标记数组,low是最短距离数组 */ int n; int prim() { vis[1] = 1; int sum = 0; int pos, minn; pos = 1;