mysql - 列出 SQL 中 2 列值的 Max(difference)
问题描述
我正在尝试计算 2 列值的最大差异,然后将它们按常见类别(在本例中为符号)分组。
Symbol mydate mytime myopen High Low myclose
ZEEL 2019-07-29 09:15:00.000 401.1 402.05 400.25 402.05
ZEEL 2019-07-29 09:17:00.000 401.6 402 398.6 400.7
ZEEL 2019-07-29 09:19:47.000 400 400 400 400
YESBANK 2019-07-29 09:15:00.000 95.8 96.05 94.6 95.25
YESBANK 2019-07-29 09:17:00.000 95.2 95.2 94.45 94.45
YESBANK 2019-07-29 09:19:46.000 93.8 93.8 93.8 93.8
WONDI 2019-07-29 09:15:00.000 258.8 258.8 258.75 258.75
(>12000 条记录,如上)
我想找到按符号分组的高 - 低值的最大差异。
所以我尝试了:
select symbol, (high-low) as Diff from dcTbl_29072019
where mytime>='15:01:35.000'
order by symbol
我有:
symbol Diff
AARTIIND 1.34999999999991
AARTIIND 0
ACC 1.25
我现在需要根据符号对以上输出进行分组,添加一条带有“按符号分组”的行返回错误。
需要明确的是,我想要的输出是:
symbol Diff
AARTIIND 1.34999999999991
ACC 1.25 ... (and So On).
TIA
解决方案
使用分组子查询的一种方法:
select symbol, (high - low) as diff
from (
select symbol, max(high) as high, min(low) as low
from dcTbl_29072019
where mytime >= '15:01:35.000'
group by symbol
) gr
order by symbol
或者,一次性完成:
select symbol, max(high) - min(low) as diff
from dcTbl_29072019
where mytime >= '15:01:35.000'
group by symbol
order by symbol
推荐阅读
- python - 如何跟踪在while循环中输入的数字
- node.js - 类型“[]”缺少类型“”中的以下属性 graphql
- spring - 通过 IN 表达式和 Spring Boot 使用 Criteria API + JPA 规范
- powershell - 在远程计算机上使用 Invoke-Command 启动的进程无法加载 X509 证书
- javascript - 如何将组合框的项目文本的第一个字母大写?
- wso2 - 如何在负载均衡器后面的 API MANAGER 中使用 apiKey 配置 IP 限制访问?
- javascript - API 令牌添加到我的 repo 中的 GitHub Secrets,部署 GitHub Pages,我如何在 Javascript 中访问这个 Secret?(简单的 Node.js 项目)
- c++ - c++中isdigit函数和while循环的问题
- vhdl - 对于某些操作,波形无法正常工作
- android - Xamarin Essentials 媒体选择器不断崩溃我的应用程序 - 没有异常或错误