作者:绿色风
分类:
时间:2022-08-17
浏览:273
楼主 海洋之星 |
Q:如何查询每个人最早的一行完整信息记录? 问题描述:在数据源中存放着每个人多条相关信息记录,现在想查询每个人最早出现的一条完整信息记录,效果如下图所示:
A:可以先利用MIN聚合函数和GROUP BY 子句找到每个人在数据源中最早出现的日期,再通过日期利用左连接将其完整信息连接起来即可。- select a.时间,a.姓名,电话量 from (select min(时间) as 时间,姓名 from [sheet1$] group by 姓名) a,(select * from [sheet1$]) b where a.时间=b.时间 and a.姓名=b.姓名
不重复筛选求助.rar
该帖已经同步到 海洋之星的微博
|
2楼 wjc2090742 |
1、最早出现的日期,为什么是用max? 2、a.时间=b.时间,一个条件是不够的。上次提取银包大类最高销售产品的题目中,也犯过一样的错误了,一点都没记住。A3单元格改成2011-5-8,结果就错了。
3、2楼的天下,只是为了抢沙发的吗? |
3楼 海洋之星 |
谢谢翁翁提醒: 1、时间值越大那么日期越晚,所以需要用MIN聚合函数 2、如果只用一个a.时间=b.时间,假如A的最早时间与B的不是最早时间相同,这条错误记录也会被查询出来,所以需要再一个条件:a,姓名=b.姓名。 是否正确请指教? |
4楼 LOGO |
不知完整的信息记录怎么理解。
若数据源中的数据是按时间顺序的升序排列的话,貌似这样也是可以的- select first(时间) as 时间,姓名,first(电话量) as 电话量 from [Sheet1$]
- group by 姓名 order by first(时间)
|
5楼 LOGO |
乱序也能用的:- select * from [sheet1$] where 时间 in (select dmin('时间','sheet1,"姓名='"&姓名&"'") from [sheet1$])
|
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一