【问题标题】:Google Sheets - GROUP BY and ORDER BY on different column谷歌表格 - 不同列上的 GROUP BY 和 ORDER BY
【发布时间】:2023-03-15 15:41:01
【问题描述】:

我有一张这种格式的表格

Name Datum
A   01.01.2019
B   17.03.2020
C   18.03.2020
C   01.04.2020

我从这个查询中得到这个表输出:

=QUERY(Anrufe!$1:$1000;"Select A,B where A is not null ORDER BY B ASC label A 'Name', B 'Datum'")

我正在尝试更改查询,以便它执行分组依据。应该是这样的

Name  Datum        count
A     01.01.2019   1
B     17.03.2020   1
C     01.04.2020   2

但是当我添加 group by 并向 select 添加聚合函数时,它仍然会引发错误。

=QUERY(Anrufe!$1:$1000;"Select A,B, min(B) where A is not null group by A ORDER BY B ASC label A 'Name', B 'Datum'")

我希望查询选择最年轻的日期,即 B 列中的日期。但似乎 QUERY-Parser 迫使我将 B 列添加到分组依据。这导致了同样的问题,我必须手动计算具有相同名称的记录。

有人知道如何解决这个问题吗? 已经检查了这些链接:

【问题讨论】:

  • 你的 select 语句中的 `m` 是什么?
  • 在您的输出中,它实际上是选择 C ​​组中的最新(最大)日期 - 这是您想要的吗?然后你会在这个最大日期排序吗?
  • @ziganotschka m n 表示min

标签: google-sheets google-query-language


【解决方案1】:

我想你想要这个:

=QUERY(Anrufe!$1:$1000,"Select A,min(B),count(A) where A is not null group by A ORDER BY min(B) ASC label A 'Name', min(B) 'Datum'")

【讨论】:

  • 当我尝试这个时,我得到了这个错误:error parsing formula
  • 对不起,您需要使用 ;在您的语言环境中: =QUERY(Anrufe!$1:$1000;"Select A,min(B),count(A) where A is not null group by A ORDER BY min(B) ASC label A 'Name', min(B ) '基准'")
  • 哇!谢谢你。最后,你的代码做了一点小改动(最大值而不是最小值):=QUERY(Anrufe!$1:$1000;"Select A,max(B),count(A) where A is not null group by A ORDER BY max(B) ASC label A 'Name', max(B) 'Datum'")
猜你喜欢
  • 1970-01-01
  • 2011-06-28
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2021-02-22
  • 1970-01-01
相关资源
最近更新 更多