mysql - 如何在mysql中选择两个不同的日期?
问题描述
我是数据库和 MySQL 的新手。我正在开发一个带有 MySQL 数据库的股票跟踪软件后端。我在 MYSQL 查询中遇到问题。
我需要跟踪一段时间内的价格变化。如何根据日期选择两个不同的列和行。例如,我需要 MYSQL 从日期“2019-02-27”返回“打开”值,从日期“2019-03-01”返回“关闭”值;
并计算两个值(十进制)之间的百分比差异。
是否可以在 MYSQL 中进行这种查询,或者我应该编写发送两个查询的程序。一个从“2019-02-27”获得“开放”,另一个从“2019-03-01”获得“关闭”。
这是我的问题的 SQL 小提琴http://sqlfiddle.com/#!9/eb23e3/6
这是任何示例表
symbol | date | open | close | low | high
----------------------------------------------------
HCL | 2019-02-27 | 36.00 | 38.00 | 34.00 | 40.00
HCL | 2019-02-28 | 37.00 | 39.00 | 36.00 | 41.00
HCL | 2019-03-01 | 38.00 | 42.00 | 37.00 | 46.00
如何从日期 '2019-02-27' 开始'open' 和从日期 '2019-03-01' 开始'close' 然后计算百分比差异,如(2019-02-27)'open' 值为 36.00 和(2019-03-01) 'close' 值为 42.00,因此百分比差异为 +16.6%。
解决方案
有了这个,您将获得 3 个所需的列:
select t.*,
concat(
case when t.close > t.open then '+' else '' end,
truncate(100.0 * (t.close - t.open) / t.open, 1)
) percentdif
from (
select
(select open from dailyprice where date = '2019-02-27') open,
(select close from dailyprice where date = '2019-03-01') close
) t
查看演示
推荐阅读
- java - 不在事务中时在 JOOQ ExecuteListener 中执行查询
- reactjs - 如何让我的减速器使用表单按钮进行更新?
- python - 如何使用python检查ping?
- python - Odoo 13 PDF 如果记录数增加一些空白页
- algorithm - 从大小为 n 的整数的未排序数组构造二叉搜索树
- scala - spark udf 没有被调用
- flutter - 右侧的无限像素溢出的 RenderFlex。在容器内使用行时
- python - 未使用 Flask JWT 扩展设置 Cookie
- css - CSS / SCSS 不会在 Docker 中运行的 ruby on rails 中更新
- php - 数组值未传递给函数