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

结果:

相关推荐
Decay__5 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
freejackman5 小时前
【实战三】撕开脱敏盲区:深度解析 CASE WHEN 与窗口函数血缘
大数据·数据库·sql
codigger7 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员
挖掘狂人7 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员
Thanks_ks8 小时前
MySQL 的索引是什么?用图书馆的目录讲明白
数据库·sql·mysql·索引·联合索引·explain·慢查询优化
freejackman1 天前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
骑着蜗牛撵大象3272 天前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
zhengfei6112 天前
Go-fastdfs /reload 未授权访问: 有效PoC
数据库·sql
大维2 天前
DBX 实测:从 SQLite 查询到 MiniMax-M3 自然语言生成 SQL
数据库·sql·sqlite
skywalk81632 天前
hive 常驻集群:像 OSPF 一样在线,像 git 一样可信
运维·人工智能·hive