hive-sql 计算每年在校生人数

sql:

用到函数 space() :生产空格 split 切分空格

posexplode 炸裂函数 返回下标和具体指

sql 复制代码
with data as (
--             主键        入学年份            人数            学制
    select 1 as id , 2001 as yy , 1200 as stu_num , '3' as stu_len union all
    select 2 as id , 2000 as yy , 1300 as stu_num , '5' as stu_len union all
    select 3 as id , 2003 as yy , 1400 as stu_num , '4' as stu_len union all
    select 4 as id , 2002 as yy , 1500 as stu_num , '3' as stu_len union all
    select 5 as id , 2002 as yy , 1600 as stu_num , '4' as stu_len union all
    select 6 as id , 2014 as yy , 1600 as stu_num , '4' as stu_len union all
    select 7 as id , 2015 as yy , 1600 as stu_num , '4' as stu_len union all
    select 8 as id , 2015 as yy , 1600 as stu_num , '4' as stu_len union all
    select 9 as id , 2015 as yy , 1600 as stu_num , '4' as stu_len union all
    select 10 as id , 2015 as yy , 1600 as stu_num , '4' as stu_len union all
    select 11 as id , 2016 as yy , 1600 as stu_num , '4' as stu_len union all
    select 12 as id , 2016 as yy , 1600 as stu_num , '4' as stu_len union all
    select 13 as id , 2016 as yy , 1600 as stu_num , '4' as stu_len union all
    select 14 as id , 2016 as yy , 1600 as stu_num , '4' as stu_len union all
    select 15 as id , 2016 as yy , 1600 as stu_num , '4' as stu_len 
)
SELECT
  endyy,
  SUM(stu_num)
FROM
  (
    SELECT
      id,
      (yy + pos) AS endyy,
      stu_num,
      stu_len,
      val
    FROM
      data LATERAL view posexplode(split(space(CAST(stu_len AS INT) -1),' ')) t AS pos,
      val
  ) t
GROUP BY
  endyy

结果:

相关推荐
lhdz_bj3 小时前
数据库开发常识(10.6)——SQL性能判断标准及索引误区(1)
sql·oracle·数据库开发·索引·性能·标准·误区
编程指南针6 小时前
基于Hadoop实现气象分析大屏可视化项目【源码+LW+PPT+解析】
大数据·hadoop·分布式·气象分析
~时泪~7 小时前
sql主从同步
数据库·sql
码农幻想梦8 小时前
实验十 Servlet(一)
hive·hadoop·servlet
Lang_xi_10 小时前
SQL入门到精通 理论+实战 -- 在 MySQL 中学习SQL语言
sql·学习·mysql
赛博末影猫10 小时前
Maven(Ⅱ):依赖范围,依赖传递,依赖阻断,可选依赖
数据库·hive·maven
又是被bug折磨的一天10 小时前
如何获取sql数据中时间的月份、年份(类型为date)
数据库·sql·mysql
乙卯年QAQ11 小时前
【Hadoop】Hadoop的HDFS
大数据·hadoop·hdfs
Joeysoda14 小时前
数据库索引:秋招面试中的经典高频题目 [特殊字符](索引原理/操作/优缺点/B+树)
数据库·sql·学习·mysql·adb·oracle
山海青风18 小时前
OpenAI 实战进阶教程 - 第七节: 与数据库集成 - 生成 SQL 查询与优化
数据库·人工智能·python·sql