Hive 누적 보고서 조회 실현
다음 방문객 방문 횟수 의 통계표 taccess
A 2015-01 5
A 2015-01 15
B 2015-01 5
A 2015-01 8
B 2015-01 25
A 2015-01 5
A 2015-02 4
A 2015-02 6
B 2015-02 10
B 2015-02 5
…… …… ……
모든 고객 이 매달 총 방문 횟수 와 현재 월 까지 모든 월 의 누적 방문 횟수 를 출력 하도록 요구 합 니 다.
출력 표
A 2015-01 33 33
A 2015-02 10 43
……. ……. ……. …….
B 2015-01 30 30
B 2015-02 15 45
……. ……. ……. …….
2. 사고방식
1) 첫 번 째, 각 사용자 의 월 총 방문 횟수 를 구 합 니 다.
select username,month,sum(count) as salary from t_access_times group by username,month
+-----------+----------+---------+--+
| username | month | count |
+-----------+----------+---------+--+
| A | 2015-01 | 33 |
| A | 2015-02 | 10 |
| B | 2015-01 | 30 |
| B | 2015-02 | 15 |
+-----------+----------+---------+--+
2) 두 번 째 단계, 월 총 방문 횟수 표를 스스로 연결 (내부 연결)
(select username,month,sum(count) as salary from t_access_times group by username,month) A
join
(select username,month,sum(count) as salary from t_access_times group by username,month) B
on
A.username=B.username
+-------------+----------+-----------+-------------+----------+-----------+--+
| a.username | a.month | a.salary | b.username | b.month | b.salary |
+-------------+----------+-----------+-------------+----------+-----------+--+
| A | 2015-01 | 33 | A | 2015-01 | 33 |
| A | 2015-01 | 33 | A | 2015-02 | 10 |
| A | 2015-02 | 10 | A | 2015-01 | 33 |
| A | 2015-02 | 10 | A | 2015-02 | 10 |
| B | 2015-01 | 30 | B | 2015-01 | 30 |
| B | 2015-01 | 30 | B | 2015-02 | 15 |
| B | 2015-02 | 15 | B | 2015-01 | 30 |
| B | 2015-02 | 15 | B | 2015-02 | 15 |
+-------------+----------+-----------+-------------+----------+-----------+--+
3) 세 번 째 단 계 는 이전 결과 에서 그룹 을 나 누 어 조회 합 니 다. 그룹의 필드 는 a. username a. month 입 니 다. 월 누적 값 을 구 합 니 다. b. month < = a. month 의 모든 b. salary 를 합 하면 됩 니 다.
3.HQL
select A.username,A.month,max(A.count) ,sum(B.count)
from
(select username,month,sum(count) as count from t_accessgroup by username,month) A
inner join
(select username,month,sum(count) as count from t_access group by username,month) B
on
A.username=B.username
where B.month <= A.month
group by A.username,A.month
order by A.username,A.month;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Hive 통합 ElasticSearch역할: Hive 데이터를 Es에 직접 입력 Index 를 생성합니다 Type의 매핑을 생성합니다 es-hive 관련 Jar 패키지를 다운로드하여 HDFS에 넣습니다 Hive 관련 JAR 패키지 추가 ES 외부 테이블...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.