oracle 取出一年内月末,求教一个sql,取出所有半年内的每个月的第一条符合条件的记录...

沒有 mysql 環境, 在 sqlserver 給試了下

create table td(

tstamp datetime,

data int

);

insert into td (tstamp, data) values

('2016-02-03 00:00:00', 200),

('2016-02-04 00:00:00', 300),

('2015-07-06 00:00:00', 202),

('2016-09-01 00:00:00', 300),

('2015-07-06 00:00:00', 324),

('2015-07-15 00:00:00', 299),

('2016-03-05 00:00:00', 499);

select * from td as t1

right join (

select

convert(varchar(7), tstamp, 126) as ts1,

min(tstamp) as ts2 from td

where tstamp between '2016-01-01' and '2016-07-01'

group by convert(varchar(7), tstamp, 126)

) as t2 on t1.tstamp=t2.ts2

tstamp data ts1 ts2

------------------------------------------------------------------------

2016-02-03 00:00:00.0 200 2016-02 2016-02-03 00:00:00.0

2016-03-05 00:00:00.0 499 2016-03 2016-03-05 00:00:00.0

下面是翻譯成 mysql 的語句(未測試)

select * from td as t1

right join (

select

date_format(tstamp, '%y-%m') as ts1,

min(tstamp) as ts2 from td

where tstamp between '2016-01-01' and '2016-07-01'

group by date_format(tstamp, '%y-%m')

) as t2 on t1.tstamp=t2.ts2

具體根據自己字段調整

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值