您可以执行“自联接”(将表连接到自身)来执行查询.这里棘手的部分是知道行插入表中的顺序,并且仅比较顺序(时间上)相邻的行.我假设您有某种TIMESTAMP列,它会告诉您之前的价格变化.如果没有,则可能“ID”可以通知您(较小的ID之后插入的ID更大的行).

调用表’TAB’,使用’TRADER’提供连接,并使用’ID’提供Order,查询将需要三向自连接,如下所示:

SELECT a.trader

, SUM(IF(a.price > b.price, 1, 0)) nbr_incr

, SUM(IF(a.price < b.price, 1, 0)) nbr_decr

, SUM(IF(a.price = b.price, 1, 0)) nbr_same

FROM tab a

JOIN tab b

ON a.trader = b.trader AND a.id > b.id

LEFT OUTER JOIN tab c

ON a.trader = c.trader AND a.id > c.id AND b.id < c.id

WHERE c.id IS NULL

GROUP BY a.trader

上面的查询将表连接到自身两次,以便每个选项卡代表以下内容:

> tab a:用于比较的最近一行

> tab b:要比较的前一行

> tab c:a&之间的一行. b时间(不应该存在)

我们对’tab c’执行LEFT OUTER JOIN,因为我们实际上并不希望该行存在.在where子句中,我们仅将结果过滤到“tab c”行不存在的结果.

最后,查询在交易者上执行’GROUP BY’,而SUM()通过比较’a’和’b’行的价格来增加和减少.

这是一个有趣的挑战.希望这可以帮助!

约翰…

mysql同一个表比较_比较mysql中同一个表中的行相关推荐

  1. hive能加快MySQL查询速度吗_建立索引可以加快表中数据查询的速度吗

    首先明白为什么索引会增加速度,DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合. 如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特 ...

  2. mysql中什么来维护表之间_转mysql维护索引和表

    即使用正确的类型创建了表并加上了合适的索引,工作也没有结束,还需要维护表和索引来确保他们都正常工作.维护表有三个主要的目的:找到并修复损坏的表,维护准确的索引统计信息,减少碎片. 一.找到并修复损坏的 ...

  3. mysql清空数据库中所有表数据_清空mysql数据库所有表数据

    1,查看数据库状态 及启动停止 /etc/init.d/mysqld status/etc/init.d/mysqld start/etc/init.d/mysqld stop 2,给用户配置初始密码 ...

  4. mysql mvcc 隔离级别_关于 Mysql 四种隔离级别中 Lock 和 MVCC 的关系

    读写锁 共享锁(share lock)| 读锁(read lock) 读锁是共享的,或者说是相互不阻塞的.多个客户在同一时刻可以同时读取同一个资源,而互不干扰 SELECT ... LOCK IN S ...

  5. mysql查看当前表字符集_查看mysql字符集及修改表结构--表字符集,字段字符集

    MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的 ...

  6. mysql 数据展示装置_实时生成数据宽表的方法和装置与流程

    本发明涉及计算机技术领域,尤其涉及一种实时生成数据宽表的方法和装置. 背景技术: 数据仓库是面向主题的.集成的.相对稳定的.随时间不短变化得数据集合,用以支持经营管理中的决策制定.数据仓库中的数据面向 ...

  7. mysql 添加int列_在MySQL中现有的int列的值中添加字符?

    要将字符添加到现有的int列值中,请使用MySQL CONCAT().让我们首先创建一个表-mysql> create table DemoTable ( Amount int ); 使用插入命 ...

  8. mysql数据库五大约束_数据库基础知识:数据库中的约束和三大范式

    一.数据库中的范式: 范式,英文名称是NormalForm,它是英国人E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计 ...

  9. mysql 日志表设计_在mysql 使用binlog日志

    一. 利用binlog恢复库表 策略: 1.启用binlog日志 2.创建db1库tb1表,插入3条记录 3.删除tb1表中刚插入的3条记录 4.使用mysqlbinlog恢复删除的3条记录 步骤一: ...

  10. mysql怎么多表备份_学习MySQL多表操作和备份处理

    [IT168 服务器学院]前面我们熟悉了数据库和数据库表的基本操作,现在我们再来看看如何操作多个表. 多表操作 在一个数据库中,可能存在多个表,这些表都是相互关联的.我们继续使用前面的例子.前面建立的 ...

最新文章

  1. C++模板详解——使用篇
  2. python安装虚拟环境没有activate_Python venv虚拟环境:Activate命令的作用
  3. 如何检查防火墙引起的端口不通
  4. rapidjson的read和write的sample
  5. ReactiveX流式编程—从xstream讲起
  6. 由浅入深,解决三道【只出现一次的数】!
  7. Ceph 常见错误 及设置
  8. 线下见面会,下一站定啦!
  9. BAT批处理自动安装软件
  10. 计算机学打字教案小学,6 用金山打字通练指法
  11. 操作系统的概念(定义)
  12. 移动端旅游电商靠什么吸引了金主?
  13. 数据结构与算法 学习笔记(陈越)
  14. 并发编程之四:并发之共享问题、线程安全、synchronized关键字
  15. git pull 报错:Exiting because of unfinished merge.
  16. 列联表相关测量--c相关系数
  17. debian中网易云音乐打不开的一种解决方法
  18. 爬在NLP的大道上——Question Answering Infused Pre-training of General-Purpose Contextualized Representations
  19. 如何让mysql数据库允许被远程连接访问
  20. canvas 裁剪签名图片 去除多余的空白

热门文章

  1. 利用Snippet快捷键在TeXpad上快速初始化中文环境的LaTeX模板
  2. 关于ascii编码的原理,特征及用途
  3. java: JDK isn‘t specified for module ‘maven-junit41‘解决办法
  4. Jmeter:Generate HTML report 导出HTML测试报告
  5. 【linux】centos7 升级gcc版本
  6. 185.[USACO Oct08] 挖水井 (第三次考试大整理)
  7. mysql 字符集 性能_MySQL字符集不一致导致性能下降25%,你敢信?
  8. MD5加密js-md5
  9. 电脑中了virus.win32.sality.i和virus.win32.pioneer.c病毒,导致所以的EXE文件打不开(打开浏览器会提示:xc0000005异常)
  10. 有计算机考试励志的文案,写给所有考生的励志文案:心有所期,全力以赴,定有所成...