mysql实现分组排序,获取第N条数据
来源:互联网 发布:数据分析 知乎 编辑:程序博客网 时间:2024/05/29 03:23
由于业务需求需要获取所有用户的第N条记录目前想到两种方式:
第一种方式用group_concat() 列转行 然后substring_index() 截取的方式性能扩展不太好:
select t.userId,substring_index(group_concat( t.mount ORDER BY t.createtime ),',',2) amount,substring_index(group_concat( t.other ORDER BY t.createtime ),',',2) other from t group by t.userId
第二种使用rownum性能较好比较灵活
</pre><pre name="code" class="sql">SELECTid,userId,content,rankFROM(SELECTb.id,b.userId,b.content ,@rownum :=@rownum + 1,IF (@pdept = b.userId ,@rank :=@rank + 1 ,@rank := 1) AS rank,@pdept := b.userIdFROM(SELECTid,userId,contentFROMmyTableWHEREpnrStatus = 1ORDER BYuserId,id) b,(SELECT@rownum := 0,@pdept := NULL ,@rank := 0) c) result
0 0
- mysql实现分组排序,获取第N条数据
- MySQL分组排序查前N条数据
- MYSQL 分组取前N条数据
- 数据库中分组第N条记录获取方式
- oracle或mysql分组查询并且获取前3条排序后的数据
- Mysql分组统计、排序、取前N条记录解决方案
- Hive和MySQL分组排序取前n条记录
- mysql获取第n条记录
- MySQL获取所有分组的前N条记录
- mysql的拉去分组前n条数据
- Oracle,Mysql 随机获取N条数据
- 实现按a字段分组后,在组内再按照b字段排序,之后每组取Top n条数据
- SqlServer查询分组后每个分组的第N条数据
- mysql分组排序取前N条记录的最简洁的单条sql !
- mysql分组排序取前N条记录的最简洁的单条sql
- mysql查询第n到第m条数据
- mysql查询获取分组后最新的一条记录,策略:先排序,然后在次分组查询(默认第一条),就是最新的一条数据了
- mysql实现分组排序
- 文件权限
- gcc与g++的区别
- Android移动app架构设计浅谈
- 关于select给默认值的问题
- PAT乙级(Basic Level)1011(C++)
- mysql实现分组排序,获取第N条数据
- HTML+CSS基础课程之使用重置按钮,重置表单信息
- python读取excel文件
- Spring 注解学习手札(一) 构建简单Web应用
- Redis3.X 配置文件
- 如何做好演讲型PPT?
- 打包和压缩文件
- 在Unity3D中控制动画播放
- mycat安装及分片初体验