You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hive无硬编码实现前一天分区数据计数查询方法

Hive 非标准日期分区表动态统计前一天数据实现方案

针对分区列为字符串类型Year、Month、Day、无统一标准日期字段的Hive表,无需硬编码日期值即可动态匹配前一天分区完成按城市分组计数,实现逻辑如下:

核心实现SQL

SELECT
    City,
    count(*) AS data_count
FROM `Table A`
WHERE
    Year = date_format(date_sub(current_date, 1), 'yyyy')
    AND Month = date_format(date_sub(current_date, 1), 'MM')
    AND Day = date_format(date_sub(current_date, 1), 'dd')
GROUP BY City;

逻辑说明

  • 该写法完全适配跨月、跨年场景,比如1月1日执行时会自动匹配上一年12月31日对应的分区值,不需要额外编写分支判断逻辑
  • 函数返回值为补零的两位月份、两位日期字符串,和表中字符串类型分区列的存储格式完全匹配,可直接命中分区,不会触发全表扫描
  • 日期计算默认使用Hive集群配置的时区,如果业务统计时区和集群时区不一致,可调整current_date的取值逻辑对齐业务时间即可
  • 因为原表名Table A包含空格,SQL中需要用反引号包裹表名避免语法错误

内容的提问来源于stack exchange,提问作者Snigh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 13:42:29