mysql在group by分组后查询第二条/第三条乃至每组中任意一条数据
昨天老板让我查询项目中(众筹),没人刚发起感召后,前三笔钱的入账时间和金额,这把大哥整懵逼了,group by在某些方面是好使,但这次不能为我所用了,获取第一笔进账是简单,可以用group by 直接获取就好,但是后面的呐,我百度反思后,最终实现,上代码,今天写篇博客,也算是记录一下这个知识点:
获取第一笔进账,我是这么搞得
select o.id,f.createdTime,round(f.money/100,0),sum(f.money) ct from(select *from organise where periodId = 251 and status = 4)o,follower f where f.status=1 and f.organiseId = o.id group by o.id order by o.id desc
organise 为发起表 follower为支持明细表
第一笔,通过对感召人进行分组 group by o.id 排序后获取的就是第一比的进账时间/金额
想要获取第二笔进账,group by 就无能为力了,需要用上limit 1,1 ,代码如下:
SELECT aa.* FROM follower aa WHERE aa.id=(SELECT f.id from(SELECT id FROM organise WHERE periodId=251 and status=4)o,follower f WHERE o.id = f.organiseId and f.status=1
and aa.organiseId =o.id ORDER BY f.createdTime LIMIT 1,1) ORDER BY aa.organiseId desc
思路: 先根据感召者的发起id关联支持表,limit查出查出需要的是第几条数据,然后再利用最外面的支持表进行反查,最后获取自己想要的数据
话说这样的sql语句,是不能应用在项目中的,因为会花大量的时间,查询这条数据得至少一份钟的时间.请慎用,在项目中还是建议用代码的形式去实现,仅仅想直接用sql获取的这种方法,是耗时耗性能的不可取的!
mysql在group by分组后查询第二条/第三条乃至每组中任意一条数据的更多相关文章
- 【mybatis】【mysql】mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains no ...
- 浅析MySQL使用 GROUP BY 分组聚合与细分聚合
原创文章,转载请注明出处:http://www.cnblogs.com/weix-l/p/7521278.html: 若有错误,请评论指出,谢谢! 1. 聚合函数(Aggregate Function ...
- group by 分组后 返回的是一个同属性的集合
group by 分组后 返回的是一个同属性的集合 我们可以遍历该集合
- 1.(group by)如何让group by分组后,每组中的所有数据都显示出来
问题描述:表如下,如何让这个表按device_id这个字段分组,且组中的每条数据都查寻出来?(假如说这个表名为:devicedata) 错误答案:select * from devicedata GR ...
- sql 分组后按时间降序排列再取出每组的第一条记录
原文:sql 分组后按时间降序排列再取出每组的第一条记录 竞价记录表: Aid 为竞拍车辆ID,uid为参与竞价人员ID,BidTime为参与竞拍时间 查询出表中某人参与的所有车辆的最新的一条的竞价记 ...
- 160804、oracle查询:取出每组中的第一条记录
oracle查询:取出每组中的第一条记录按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group by ...
- 利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在 ...
- MySQL中group_concat函数 --- 很有用的一个用来查询出所有group by 分组后所有 同组内的 内容
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...
- SQL实现group by 分组后组内排序
在一个月黑风高的夜晚,自己无聊学习的SQL的时候,练习,突发奇想的想实现一个功能查询,一张成绩表有如下字段,班级ID,英语成绩,数据成绩,语文成绩如下图 实现 查询出 每个班级英语成绩最高的前两名的记 ...
随机推荐
- 1. RDD概念
1.1 RDD为什么会产生? RDD 是 Spark 的基石,是实现 Spark 数据处理的核心抽象.那么 RDD 为 什么会产生呢? Hadoop 的 MapReduce 是一种基于数据集的工作模式 ...
- python_二叉树简单实现
今日头条面试题,先做下: 二叉树代码实现 class Node: def __init__(self,item): self.item = item self.child1 = None self.c ...
- Flutter 与 Android 的交互
https://juejin.im/post/5cd91de4518825686b120921 https://juejin.im/entry/5b64292be51d451995676398
- Coldfusion Sql查询分组输出
<cfoutput query="myQry" group="date"> #date# <cfoutput> #detail# < ...
- jQuery动画(带参数)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- JavaScript函数参数传递
Hello,今天和大家分享下JS中的一个基本概念:函数参数传递! 先来看看一个DEMO var str="hello world"; function func(s){ s=&qu ...
- ios开发之NSData
NSData用于保存字节数组. 初始化 - (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length free ...
- UCOSIII等待多个内核对象
内核对象 内核对象包括信号量.互斥信号量.消息队列和事件标志组 UCOSIII中允许任务同时等待多个信号量和多个消息队列 主结构体 typedef struct os_pend_data OS_PEN ...
- mtd交叉编译mkfs命令
下载 mtd:ftp://ftp.infradead.org/pub/mtd-utils/ zlib:http://www.zlib.net/ lzo:http://bouchez.info/lzo. ...
- O - Can you find it?(二分查找)
O - Can you find it? Time Limit:3000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64 ...