目录

1、日期维度表

2、生成语句

3、用例


在进行日期处理时,有时候会很麻烦,于是小编开发了一张日期维表,供大家参考。

1、日期维度表

num 字段名 字段中文名 描述 数据类型
1 date 日期 日期 yyyMMdd格式 bigint
2 week 星期,数字型 星期,数字型 0-6 bigint
3 week_cn 星期中文名 星期中文名 星期一…… string
4 year_weeks 一年中的第几周 一年中的第几周 1 2 3…… bigint
5 mon_dt 本周周一日期 本周周一日期 bigint
6 sun_dt 本周周日日期 本周周日日期 bigint
7 month 年月 年月,yyyyMM格式 bigint
8 month_short 月份简写 月份简写,MM格式1~12 bigint
9 month_cn 月份中文名 月份中文名 一月…… string
10 quarter 季度 季度,yyyyQ1\2\3\4 string
11 quarter_short 季度 数字型 季度 数字型 1-4 bigint

2、生成语句

set hive.execution.engine=tez;
with dates as (
select date_add("2010-01-01", a.pos) as d
from (select posexplode(split(repeat("o", datediff("2030-12-31", "2010-01-01")), "o"))) a
)
insert overwrite table dim.dim_date
select
    d
  , date_format(d, 'yyyyMMdd000000') as to_pt            -- 指定分区格式
  , date_format(d, 'yyyyMMdd')       as date_yyyymmdd
  , trunc(d,'MM')                    as month_first_day 
  , last_day(d)                      as month_last_day
  , date_format(last_day(d),'yyyyMMdd000000')   as month_last_pt
  , date_format(d, 'yyyyMM')  as month_yyyymm
  , date_format(d, 'yyyy-MM') as month_yyyy_mm
  , month(d) as month
  , date_format(d, 'u') as week
  , date_format(d, 'E') as week_long   
  , weekofyear(d) as week_of_year
  , year(d) as year
  , floor(substr(d,6,2)/3.1)*3+1 as quarter
  -- , concat_group('"',date_format(d, 'yyyyMM'),'"') as date_yyyymmdd_list   -- 低版本hive group_concat 不可用
from dates

3、用例

  1. 取月末:where date_pk = month_last_day;
  2. 取周末:where week_int in (6,7);
  3. 取每月最后一天pt+ 当月昨天pt:where pt IN ( SELECT max(to_pt) FROM dim.dim_date where to_pt <= '${-1d_pt}' group by month_yyyymm  );
  4. 其它用法......

一个sql生成hive日期维度表相关推荐

  1. 教你用SQL生成一张带「农历」的日期维度表

    点上方关注"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 之前已经发布过使用存储过程,生存指定年份的日历表<SQL如何制作一张日历维度表&g ...

  2. hive生成日期维度表Hql

    hive生成日期维度表 利用现有的函数,生成维度表 表结构 日期key 具体日期 第几月份 第几季度 年份 周几 当前周的第几天 当前月的第几天 当前年的第几天 当前年的第几周 当前周的第一天 当前周 ...

  3. python生成日期列表_PYTHON生成日期维度表

    数据仓库的定义之一是反应历史变化,数据或多或少都会包含时间特征,因此日期维度就成了数据仓库中不可或缺的维度之一,可以说在任何一个事实表中都会有一个或者多个日期维度的外键.日期维度可以尽可能多的包含日期 ...

  4. MYSQL 生成日期维度表

    这里写自定义目录标题 MYSQL 生成日期维度表 1.创建建维度表 2.生成维度数据函数 MYSQL 生成日期维度表 在报表统计中经常要用到日期维度进行汇总,所以需要提前生成通用的日期维度表. 1.创 ...

  5. 数据仓库之日期维度表构建

    导读 大家好,今日立秋,立秋是阳气渐收.阴气渐长,由阳盛逐渐转变为阴盛的转折.我们上一篇文章 数据仓库之维度表 介绍了数据仓库中维度表,本篇文章在此基础上介绍和构建维度表中的日期维度.Kimball ...

  6. 编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空 null 【杭州多测师】【杭州多测师_王sir】...

    编写一个SQL查询来报告 Person 表中每个人的姓.名.城市和州.如果 personId 的地址不在 Address 表中,则报告为空  null . 以 任意顺序 返回结果表. 示例 : Per ...

  7. 编写一个SQL查询,获取Employee表中第二高的薪水(Salary)

    单选 class X{Y y=new Y();public X(){System.out.print("X");} } class Y{public Y(){System.out. ...

  8. hive日期维表 上周五到本周四为一周

    需求: 在日期维表中添加一列,周,上周五到本周四代表一周 直接上sql: select aa.dates,substr(dates,0,4) as years,substr(dates,0,7) as ...

  9. 如何用SQL生成一张日期维度表?

    点击关注公众号,SQL干货及时获取 后台回复:1024,获取海量学习资源 问题描述 输入想要生成日历的年份,通过调用存储过程,即可生成该年的全部日历. 创建表结构 我们根据常见的日历表来创建一个含有年 ...

最新文章

  1. 邻接表存储图的广度优先遍历
  2. 怎么用MYSQL分析财务数据_如何使用Mysql正确的处理财务数据
  3. 拉格朗日插值--等距节点Python实现并计算误差
  4. [ATF]-ATF makefile的导读
  5. 【若依(ruoyi)】菜单操作SQL
  6. Apk打包-签名过程
  7. 八款开源Android 游戏引擎介绍
  8. paip.python错误解决12
  9. 有没有测试颜色的软件,用什么软件测试显示器色彩最准:色彩校正软件
  10. win10ltsc安装后重启提示bitlocker有问题怎么办_原神安装运行问题-原神打不开进不去解决教程...
  11. 全球ip地址查询与区域判断
  12. 智科人之人工智能大实验四选一验优报告参考:基于遗传算法的函数极值求取
  13. 线序检测 多芯线 线缆检测 正反线序 交叉线序检测 排线检测 成品线检测
  14. 计算机课件白板培训,交互式电子白板的使用培训(1)(2)ppt课件
  15. 秦牧鸿蒙之体有什么用,第一五一二章 鸿蒙元气
  16. 一个毕业三年的程序猿对于提升自我的一些建议
  17. 疯狂springboot终极讲义笔记(二)
  18. 韩松EIE:Efficient Inference Engine on Compressed Deep Neural Network论文详解
  19. 罗升阳:那两年炼就的Android内功修养(转)
  20. su [user] 和 su - [user]的区别

热门文章

  1. 【萌味】小夕说,不了解动态空间增长的程序喵都是假喵(中)
  2. 美团数据库运维自动化系统构建之路
  3. Shield——开源的移动端页面模块化开发框架
  4. Redis 高负载下的中断优化
  5. Android组件化方案及组件消息总线modular-event实战
  6. 论文浅尝 - ICLR2020 | Pretrained Encyclopedia: 弱监督知识预训练语言模型
  7. 论文浅尝 | 一种可解释的语义匹配复值网络
  8. 【推荐系统算法学习笔记1】基本架构、专有名词、构建流程
  9. Django 模板系统2
  10. IOS 获取农历方法(转)