【问题标题】:Count unique in group by - Google Query计数唯一分组依据 - Google 查询
【发布时间】:2014-04-21 01:27:38
【问题描述】:

我有这张桌子:

A B
1 4
2 5
3 6
1 4
2 4
3 4

我怎么能输出:

A count
1 1
2 2
3 2

即计算具有不同值的记录。

我已经在 mysql 中阅读过我可以做到的:

select A, count(distinct B) from table group by A

如何将其转换为 Google 电子表格查询语言?

【问题讨论】:

  • 您可以在 google 电子表格中使用 QUERY,但由于某种原因它不喜欢 count(distinct b)。
  • @kenorb 不,它不是重复的,这个问题专门指的是谷歌查询。

标签: google-sheets


【解决方案1】:

一种方法是

1- 在 C1 列中,输入公式=Unique(A1:A6)。这将为您提供 A 列中的独特项目

2- 然后在 D1 列中,输入=COUNTUNIQUE(FILTER($B$1:$B$6,$A$1:$A$6=C1)) 并向下拖动

【讨论】:

【解决方案2】:

=QUERY(unique(A1:B7), "select Col1, count(Col2) group by Col1")

通常,第一部分创建一个只有唯一值和select 计数和组的“表”。

【讨论】:

    【解决方案3】:

    如果你想用 QUERY 来做,这是可能的。事实上,QUERY 函数会为您提供一个表格作为结果;您必须设置另一个 QUERY 来设置最终函数的范围。

    在你的情况下:

    =QUERY(
    UNIQUE(QUERY(A1:B7;"SELECT * WHERE A is not null ORDER BY A"));
    "SELECT Col1, count(Col2) WHERE Col1 is not null GROUP BY Col1")
    

    如您所见,第一个 QUERY 为第二个 QUERY 设置了表。这就是为什么您必须使用 ColX 而不是 A 作为最终 QUERY 的原因。

    【讨论】:

      【解决方案4】:

      您只需在查询中添加 sum 函数。

      SUM(QUERY(A1:B7,"SELECT COUNT(B) GROUP BY B LABEL COUNT(B) ''"))

      【讨论】:

      • 注意:非常简短的答案和/或回帖者的问题可能应该是 cmets。你只需要 50 个代表点就可以在一个问题下发表评论 - 你能把它移到那里吗?
      猜你喜欢
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多