对group by出来的每一组取前十名
来源:互联网 发布:phpwamp mysql密码 编辑:程序博客网 时间:2024/05/11 03:29
问题阐述:
1. 数据库查询的时候group by可以对数据进行分组,然而返回的结果集中,一组只占结果集的一行。
2. 也就是说,除了对group by出来的信息使用max、min、avg、sum否则查出来的结果信息几乎没有什么意义。(在DB2中尝试,假如不加这些函数是执行不出结果的,会报错;在mysql中,不加这些函数可以出来结果值,不报错,但是结果值其实是没有什么意义的,因为它代表不了整个组的信息,而是整个组中的一条信息,故我认为是没有意义的)
3.有时候想将数据分组,然后取出每一组的前十名,经尝试,用mysql的limit它直接作用于了最后的结果集,而不是如我所愿的取出每一组的前十个;用DB2的fecth first 10 rows only也是同样效果;sql server的top未曾尝试
4. 于是想到写存储过程来解决这个需求,写法如下:
查询每一组的前十名delimiter //drop procedure if exists MyGroup//CREATE PROCEDURE MyGroup()begin declare num int default 0; declare i int default 0; set num = (select count(distinct settle_date) from tbl_files); while i < num do select file_nm,file_id,file_len,settle_date from tbl_files where settle_date = (select settle_date from tbl_files group by settle_date limit i,1) order by file_len DESC limit 10; set i=i+1; end while;end//delimiter ;
使用方法:将以上代码在命令行中运行后,可以通过 show precedure status查看目前已有的存储过程,不出问题可以看到创建的存储过程中有名为MyGroup的存储过程。
调用方法:调用该存储过程则能进行查询了,调用方法是,依旧在mysql的命令行中输入 call MyGroup;
注:select count(distinct settle_date) from tbl_files // 可以查询出总共有多少组
1 0
- 对group by出来的每一组取前十名
- group by,having查询 ”每**“的查询
- group by分组后,取每组的前几行
- mysql group by获取第一组数据
- 对group by 选取结果的排序
- mysql分组取每组前几条记录(排名) 附group by与order by的研究
- mysql分组取每组前几条记录(排名) 附group by与order by的研究
- mysql分组取每组前几条记录(排名) 附group by与order by的研究
- mysql分组取每组前几条记录(排名) 附group by与order by的研究
- mysql分组取每组前几条记录(排名) 附group by与order by的研究
- 分组取每组前几条记录(排名) 附group by与order by的研究
- mysql分组取每组前几条记录(排名) 附group by与order by的研究
- sql的having深入理解;group by只返回一组的一行,compute更好
- 关于group by查询得到分组后每组的最小值的记录
- 取出分组后每组的第一条记录(不用group by)按时间排序
- MySQL group by后的结果将每组某VARCHAR字段字符串连接起来
- group by分组后获得每组中时间最大的那条记录
- 用postgresql特性简化group by 后取每组前n条记录的方法
- jQuery插件开发详细教程2
- 『ANDROID』SocketTimeoutException和ConnectTimeoutException的区别
- 使用 Python 获取 Linux 系统信息
- Android ImageView图片浏览器(ImageView加载sd卡图片资源)的内存溢出问题分析
- 通过注册表得到IP相关信息
- 对group by出来的每一组取前十名
- Unique Paths II (Java)
- [leetcode oj] LRU
- KAFKA分布式消息系统
- free buffer waits
- NOJ寒假专题训练 Round #1 Search D~H题题解 另附A~C题解地址
- 你应该使用 Nginx + UWSGI
- XENAPP 7.6和XENDESKTOP 7.6 初体验之九 STOREFRONT 2.6配置以及功能介绍
- NYOJ 某种序列