mysql 多表查询 比较两个字段最大、最小值,并显示对应字段

 手机用户2502858405 发布于 2022-11-03 00:30

有两个表,表A和表B,结构相同,但是具体字段不同,在表A.date = B.date条件下,查询出以下结果:MAX(A.ticker_buy-B.ticker_sell) 和MIN(A.ticker_buy-B.ticker_sell) ,即同一时间下两个表不同字段的差值的最大值和最小值,并显示对应最大值、最小值对应的date字段,我尝试用sql语句写了下,但是结果不对(用excel大致比较过)。我的语句如下:

select max(okcomfuturetickerquarter.ticker_buy-okcomfuturetickernextweek.ticker_sell) as "最大差价",min(okcomfuturetickerquarter.ticker_buy-okcomfuturetickernextweek.ticker_sell) as "最小差价",okcomfuturetickerquarter.date as "时间" from okcomfuturetickerquarter,okcomfuturetickernextweek where okcomfuturetickerquarter.date=okcomfuturetickernextweek.date and okcomfuturetickerquarter.ticker_buy is not null and okcomfuturetickernextweek.ticker_sell is not null ,

请各位大神帮助,写出正确查询语句。

2 个回答
  • max的参数应该是column名,先将每一行ticker_buy和ticker_sell的差值算出来,然后用order by来排序,取第一个即可
    select (a.ticker_buy-b.ticker_sell) as ticker from a,b where a.date = b.date GROUP BY a.date order by ticker;

    2022-11-05 05:35 回答
  • 先吐槽一下很长的表名……

    SELECT a.date as "时间", max(a.ticker_buy-b.ticker_sell) AS "最大差价",min(a.ticker_buy-b.ticker_sell) AS "最小差价" FROM a,b 
    WHERE a.date = b.date 
    AND a.ticker_buy IS NOT NULL
    AND b.ticker_sell IS NOT NULL
    GROUP BY a.date;
    2022-11-05 05:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有