oracle - 如何在 SQL 中使用 MIN 和 MAX 函数避免 0 值?
问题描述
我有这样的表:
Running Date
128 1/1/2018
700 6/11/2018
900 6/11/2018
300 6/11/2018
如果日期相同,则选择最小值和最大值并从“运行”列中获取差异。如果只有一个日期,那么什么都不做并获得相同的价值
询问:
SELECT MAX(RUNNING) - MIN(RUNNING) "RUNNING", DATE
FROM TABLE
GROUP BY DATE;
我得到以下结果:
Running Date
0 1/1/2018
600 6/11/2018
但我想要“128”值和“2018 年 1 月 1 日”日期,但这给出 0 值
如何解决这个问题?
解决方案
包括一个CASE
声明。
SELECT
CASE
WHEN MAX(running) = MIN(running) THEN MAX(running)
ELSE MAX(running) - MIN(running)
END
"RUNNING",
dt
FROM t
GROUP BY dt;
推荐阅读
- java - 如何使用 java 代码区分自签名证书和 CA 签名证书?
- asp.net-core - 如何在 blazor 服务器端关闭页面时获取事件?
- python - 在 PythonOperator 中运行 bash 脚本适用于气流 1.10.6 而不是 1.10.7
- go - 解组为指针与值接收器字段
- docker - 如何从 EKS 工作节点中删除未使用的图像?
- java - 如何使用 aws java sdk 将文件从 S3 存储桶从一个区域复制到另一个区域?
- android - 省电功能可防止 WorkManager 被执行
- python - Pandas 用基于另一列的第一个非 nan 值替换 nan
- javascript - JavaScript 中的 getter 有什么用?
- ruby-on-rails - 在单击元素时从 phantomJS 移动到 rspec 功能规范的 headless chrome 时出错