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

发布于 2022-09-02 23:30:59 字数 947 浏览 19 评论 0

有两个表,表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 ,

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

表2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぺ禁宫浮华殁 2022-09-09 23:30:59

先吐槽一下很长的表名……

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-09-09 23:30:59

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;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文