sql - Hive 获得 where 子句的两个值的最小值
问题描述
我正在尝试编写一个配置单元查询,以便我需要使用基于日期的 where 子句来过滤记录。
WHERE date_key
BETWEEN date_sub(current_date, 4)
AND MINIMUM(date_sub(current_date, 1), to_date("2018-10-14"))
我们可以做类似MINIMUM
两个值的事情吗?
解决方案
如果您使用的是 oracle,那么有一个名为“least”的关键字将输出较小的值。例如:
WHERE date_key
BETWEEN date_sub(current_date, 4)
AND LEAST(date_sub(current_date, 1), to_date("2018-10-14"))
否则,您可以手工制作查询以比较两个值,如下所示
WHERE date_key
BETWEEN date_sub(current_date, 4)
AND (CASE WHEN date_sub(current_date, 1)< to_date("2018-10-14") THEN
date_sub(current_date, 1)
ELSE to_date("2018-10-14")
END)
推荐阅读
- laravel-5 - Laravel-websocket 无法通过 apache2 连接到 Azure VM
- javascript - 得到不可整除的余数
- python - django-elasticsearch-dsl 的连接被拒绝错误
- typescript - 如何在 Typescript 中返回类的实例或错误
- ios - 从核心数据获取的代码未在 tableview 单元格标签中正确显示
- c# - 当我的静态主程序有 [STAThread] 时,我需要异步等待响应
- mysql - 如何在过去 30 分钟内获取每分钟的时间行
- azure - Terraform 无法在 Azure 中创建存储帐户
- java - 如何完成 android 电视项目中的活动
- c# - 是否可以在不更改现有格式的情况下将数据附加到现有的 CSV 或 xlsx 文件......使用 C#?