我直接看到的一个问题是使用日期的时间戳数据类型,这将使​​您的SQL查询复杂化有两个原因 – 您必须使用范围或转换为where子句中的实际日期,但更重要的是,既然你声明你对今天的收盘价和昨天的收盘价感兴趣,那么你必须跟踪市场开盘的日子 – 所以星期一的查询不同于星期二 – 星期五和市场关闭的任何一天假期也必须考虑在内.

我会添加一个像mktDay这样的列,并在每天市场营业时增加它.另一种方法可能是包含一个’previousClose’列,使您的计算变得微不足道.我意识到这违反了正常形式,但它在您的查询中节省了昂贵的自联接.

如果您无法更改结构,那么您将进行自我加入以获得昨天的收盘价,您可以根据需要计算%变化和订单的百分比变化.

下面是Eric的代码,在运行mysql 5.0.27的服务器上清理了一下它

select

p_today.`ticker`,

p_today.`date`,

p_yest.price as `open`,

p_today.price as `close`,

((p_today.price - p_yest.price)/p_yest.price) as `change`

from

prices p_today

inner join prices p_yest on

p_today.ticker = p_yest.ticker

and date(p_today.`date`) = date(p_yest.`date`) + INTERVAL 1 DAY

and p_today.price > 0

and p_yest.price > 0

and date(p_today.`date`) = CURRENT_DATE

order by `change` desc

limit 10

请注意后面的滴答声,因为您的一些列名称和Eric的别名是保留字.

还要注意,对第一个表使用where子句将是一个较便宜的查询 – 首先执行get的地方,只需要尝试自行连接大于零的行并拥有今天的日期

select

p_today.`ticker`,

p_today.`date`,

p_yest.price as `open`,

p_today.price as `close`,

((p_today.price - p_yest.price)/p_yest.price) as `change`

from

prices p_today

inner join prices p_yest on

p_today.ticker = p_yest.ticker

and date(p_today.`date`) = date(p_yest.`date`) + INTERVAL 1 DAY

and p_yest.price > 0

where p_today.price > 0

and date(p_today.`date`) = CURRENT_DATE

order by `change` desc

limit 10

mysql对比时间段百分比_如何使用MySQL计算每日最高价格变化百分比?相关推荐

  1. mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...

    概述 mysql数据库存储引擎为MyISAM的时候,在大访问量的情况下数据表有可能会出现被锁的情况,这就会导致用户连接网站时超时而返回502,此时就需要MySQL数据库MyISAM存储引擎转为Inno ...

  2. mysql内连接简写_技术分享 | MySQL 的 join_buffer_size 在内连接上的应用

    本文详细介绍了 MySQL 参数 join_buffer_size 在 INNER JOIN 场景的使用,OUTER JOIN 不包含.在讨论这个 BUFFER 之前,我们先了解下 MySQL 的 I ...

  3. mysql 表结构监控_性能测试之mysql监控、优化

    共享表空间还有一个缺点就是不能自动收缩,自动收缩是什么意思呢,刚建表的时候,表里面数据很少,就1条数据,可能占用空间就几kb,到后来数据多了,占用了10个G的空间,然后发现有一些数据都是垃圾数据,删了 ...

  4. mysql db模块下载_易语言MySql数据库操作类V1.0模块源码

    易语言MySql数据库操作类V1.0模块源码 易语言MySql数据库操作类V1.0模块源码 系统结构:MySql数据库连接类_测试子程序,置连接选项,连接,关闭,是否已连接,取连接句柄,置连接句柄,执 ...

  5. mysql数据库视图备份_数据库篇-mysql详解( 六 )之视图与数据备份

    data.png 一 : 视图 视图: view, 是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表, 虚拟表的结构来源不是自己定义, 而是从对应的基表中产生(视图的数据来源). ( ...

  6. 向mysql数据库发送指令_常用的MySQL数据库命令大全

    飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...

  7. mysql 常规命令操作_常见的MySQL命令大全

    一.连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码1.例1:连接到本机上的MYSQL.首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot ...

  8. 高性能mysql观会感_【高性能Mysql 】读书笔记(一)

    第1章 Mysql架构与历史 MYSQL最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理( Query Processing)及其他系统任务( Server Task)和数据的存储 ...

  9. mysql 数据库命令大全_常用的MySQL数据库命令大全

    飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...

最新文章

  1. 机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA)
  2. Exchange 2013sp1邮件系统部署-(七)
  3. CentOS安装网卡设置
  4. mysql去重DISTINCT
  5. Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]
  6. python工厂模式 取代__init___浅析Python 简单工厂模式和工厂方法模式的优缺点
  7. 吾之工作要求:死板,教条,僵化
  8. MINGW里面没有mingw32 make.exe
  9. 微信公众号号开发小记(六)使用开源框架开发
  10. MCE | 打破 Western Blot 玄学操作
  11. 复合函数的极限与连续
  12. 阿里云虚拟机多域名配置
  13. java计算机毕业设计校园订餐系统源码+系统+数据库+lw文档+mybatis+运行部署
  14. Spring Boot Redis 实现分布式锁,真香
  15. 微信小程序和百度小程序的登录 wx.login() swan.login() , 以及存在的问题处理
  16. HKUST DDM面试
  17. apsaradb for mysql_云数据库·ApsaraDB 产品7月刊-阿里云开发者社区
  18. C语言编译运行代码的过程
  19. 优秀的SAP顾问必备三把刷子
  20. xshell rz传输文件立即失败解决方法

热门文章

  1. 小学计算机制作表格教案,小学信息技术《制作表格》教案
  2. 关于U盘病毒(又名Autorun病毒)
  3. js统计字符串中大写字母与小写字母的总个数
  4. nested exception is io.lettuce.core.RedisCommandExecutionException: ERR invalid expire time in setex
  5. 计算机组成原理文华学院,华中科技大学文华学院计算机组成原理课设(11页)-原创力文档...
  6. Pycharm控制台中文输出乱码怎么办?控制台输出乱码问题的解决方法
  7. 两种依赖注入的类型是什么?
  8. 微信小程序的socket.io即时通讯开发(基于E聊SDK)
  9. 局部加权回归LOESS
  10. 屏蔽百度搜索结果页的推送广告