SQL-根据时间筛选前十条数据

本文探讨如何使用SQL根据时间字段筛选出每组的前N条记录,重点介绍了MySQL中处理此类问题的方法,包括利用临时表和分组查询等技巧。
摘要由CSDN通过智能技术生成
-- 创建临时表
create temporary table t
as select sc.id,sc.item_id,sc.settle_biz_date
    from biz_sc sc
    where settle_biz_date between '2022-07-01' and '2022-09-19'
    and is_settled=true and delflg=0 and pkg_flg in (0,2) and last_qty=1 and item_id=3021900000000000276;

-- 循环排序top  
select t3.id,t3.settle_biz_date FROM 
    (select t1.*,(select count(*)+1 from t t2 
        where t2.settle_biz_date = t1.settle_biz_date 
        AND t2.id > t1.id 
        ) top from t t1 
        ) t3 where top <= 10 order by settle_biz_date,id;

-- 删除临时表        
drop table if EXISTS t;

参考:SQL查询之分组后取每组的前N条记录_瘦子没有夏天的博客-CSDN博客_sql查询每组的前几条记录

mysql 查询临时表_MySQL临时表与内存表_鸦杀已尽的博客-CSDN博客 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值