mysql 判断每周三条数据_mysql – 如何从表中获取最近3周的最后3个数据

我有一张由股市每日数据组成的表格.它每天由不同数量的行组成.我在表中有一个名为“High”的列.现在我需要计算最近3周的MAX(高).例如: – 如果今天是星期三,我需要计算上周五的星期五以及本周的星期一,星期二.我知道如果我使用像这样的查询手动知道日期,我可以这样做.

Select MAX(HIGH) from table_name where date>='date'

但我不想这样做,我只想用PHP编写的程序自动执行此操作.我怎样才能实现这一点,无论是PHP还是SQL,都可以获得任何帮助.我的表只有6列

date,time,open,high,low,close

假设我的桌子是这样的

date time open high low close

2015-05-06 09:30:00 2012.50 2020.5 2016.5 2014.0

2015-05-06 09:31:00 2013.50 2021.5 2014.5 2016.0

2015-05-06 09:32:00 2014.50 2021.75 2017.5 2013.0

2015-05-07 09:30:00 2011.50 2019.5 2018.5 2014.0

2015-05-07 09:31:00 2014.50 2022.5 2016.5 2015.0

2015-05-07 09:32:00 2012.50 2026.5 2017.5 2016.0

2015-05-08 09:30:00 2010.50 2024.5 2015.5 2017.0

2015-05-08 09:31:00 2013.50 2026.5 2017.5 2018.0

2015-05-08 09:32:00 2014.50 2028.5 2015.5 2019.0

2015-05-08 09:33:00 2014.50 2022.5 2017.5 2012.0

2015-05-11 09:30:00 2017.50 2025.5 2018.5 2013.0

2015-05-11 09:31:00 2018.50 2027.5 2019.5 2016.0

2015-05-11 09:32:00 2019.50 2024.5 2011.5 2017.0

2015-05-11 09:33:00 2020.50 2026.5 2017.5 2014.0

2015-05-12 09:30:00 2018.50 2023.5 2018.5 2018.0

2015-05-12 09:31:00 2017.50 2024.5 2017.5 2014.0

2015-05-12 09:32:00 2018.50 2023.5 2018.5 2013.0

2015-05-12 09:33:00 2017.50 2024.5 2019.5 2014.0

2015-05-12 09:34:00 2016.50 2023.5 2016.5 2012.0

2015-05-12 09:35:00 2017.50 2025.5 2018.5 2011.0

如果今天的日期是2015-05-13(周三),我需要最后3个星期的MAX(高),即2015-05-12,11,08,即2028.5.

解决方法:

据推测,您只有“工作日”的数据.

select max(high)

from table_name t join

(select date

from table_name

group by date

order by date desc

limit 3

) dates

on t.date = dates.date;

据推测,您要么想要股票的条件,要么想要分组,但这取决于您的示例查询.

您可以通过添加where子句来提高效率.通常情况下,最后三个工作日是在最后一周内,或者是:

select max(high)

from table_name t join

(select date

from table_name

where date >= date_sub(curdate(), interval 7 day)

group by date

order by date desc

limit 3

) dates

on t.date = dates.date;

标签:mysql,max,date,sql

来源: https://codeday.me/bug/20190623/1274211.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值