mysql分组,取每组前几条记录
2016-03-04 10:51
543 查看
SELECT * FROM 表名 a WHERE (SELECT count(*) FROM 表名 b WHERE b.日期=a.日期 AND b.id>a.id )<5 ORDER BY 日期 asc,id desc
类似数据:
对上面数据按照日期分组,每组取qty_ordered最大的前5条:(注意因为我这里条件特殊,所以取5条,写<10)
SELECT * from sales_bestsellers_aggregated_daily AS t1 where (SELECT COUNT(*) FROM sales_bestsellers_aggregated_daily AS t2 WHERE t2.period=t1.period AND qty_ordered>t1.qty_ordered) < 10 AND period >= '2016-03-01' AND period <= '2016-03-02' AND store_id=1 ORDER BY t1.period,t1.qty_ordered DESC;结果如图:
相关文章推荐
- 利用MYSQL 日志恢复
- mac 上搭建mysql数据库
- 数据切分——Atlas读写分离Mysql集群的搭建
- MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法
- mysql分区
- MYSQL order by排序与索引关系总结
- MySQL入门(二)
- MySQL带参数的存储过程小例子
- Hibernate中一对一,一对多,多对多的写法
- mysql replication 主从…
- mysql 多列索引 详细说明
- Mysql 查看连接数,状态--配置设定
- mysql主从同步
- mysql 用户管理和权限设置
- MySQL锁表解决方法
- mysql 批量更新与批量更新多…
- mysql存储过程是使用--变量传参动…
- mysql多条语句执行,仅仅支持mysql…
- MySQL中的datetime与timestamp比较
- Mysql实现数据的不重复写入(inser…