首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google电子表格查询:如何获取每个组的第一条记录?

Google电子表格查询:如何获取每个组的第一条记录?
EN

Stack Overflow用户
提问于 2014-10-28 12:32:44
回答 1查看 2.9K关注 0票数 2

示例数据库:存储为Google电子表格

  • Timestamp=======|=Contact No=|=Bill=======|
  • =-=。
  • 2014年7月11日2:46:29
  • 2014年6月15日2:46:29
  • 2014年5月22日2:46:29
  • 2014年4月11日2:46:29
  • 2014年7月15日2:46:29
  • 2014年6月1日2:46:29
  • 2014年5月12日2:46:29
  • 2014年4月20日2:46:29

我需要:

  • Timestamp=======|=Contact No=|=Bill=======|
  • ===============|===========|===========|
  • 2014年7月11日2:46:29
  • 2014年7月15日2:46:29

因此,我有3列时间戳(栏- A),联系号码(栏- B)和帐单金额(栏- C)在谷歌电子表格。我需要一个大型查询(或者一个我可以与Google电子表格一起使用的查询),如果我在查询中传递该联系人(作为where子句-在B包含XXX或B包含YYY的地方),它可以为每个联系人获取最新的账单金额。

到目前为止,通过检查其他Stack溢出链接和Google搜索,我想出了如下所示:

代码语言:javascript
复制
select * where B contains 9332261982 order by A DESC LIMIT 1 OFFSET 0

代码语言:javascript
复制
select A,B,C where B contains 9332261982 or B contains 9916901970 order by A DESC

那么,如何对此进行标记并获得我想要的查询呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-28 15:39:16

在BigQuery中,我会做这样的事情:

代码语言:javascript
复制
Select A,B,C FROM
(Select * 
, Row_Number() Over(Partition By B Order by A Desc) as RNB
From yourtable)
Where RNB=1

另一种选择(如果您没有窗口函数)将使用一些字符串操作和max。

  1. 通过将date列与value列(A_C)连接起来创建一个D列,这样您就可以得到类似于: 2014-10-29 23:15:2__000012345 (注意0填充,这样得到的字符串将具有相同的长度)
  2. 运行一个简单的集合的选择B,最大(D)E从.
  3. 新的E列的子字符串。

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26608454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档