在QUERY中输出带有计算字段的标准化列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在QUERY中输出带有计算字段的标准化列相关的知识,希望对你有一定的参考价值。

在Google电子表格中,我有以下表达式:

=QUERY(database; "select b,c, where a='anyone-condition' order by c desc";-1)

ab是字符串,c是一个数字。 如何在此查询中包含一个计算字段c/sum(c)

答案

如果不做一个你不想要的小组,你就无法做到总和。您可以在工作表中添加D列以进行求和。在D中尝试= sum($ C $ 2:$ C)并复制下来。然后这将工作:

=query(database, "select B,C/D where A='anyone-condition' order by C desc label C/D ''",-1)
另一答案

尽管Ed Nelson是完全正确的,但您可以使用多个嵌套查询来创造性,并且无需额外的列即可获得所需的结果。

我已经构建了一个简单的示例,它将向您展示方式

Data

enter image description here

Solution 1 - simpler but with ugly column name

 =QUERY(
  A1:C3,"select A,B,C/"&QUERY(
  QUERY(A1:C3,"select sum(C)"),"select * offset 1",0)&"" ,1
 )

enter image description here

Solution 1.1 - more complex but with custom column name

=QUERY(
 A1:C3,"select A,B,C/"&QUERY(
  QUERY(A1:C3,"select sum(C)"),"select * offset 1",0)&
 " label C/"&QUERY(
  QUERY(A1:C3,"select sum(C)"),"select * offset 1",0)&
 " 'C/sum'",1
)

enter image description here

Finals:

您可以进一步将格式添加到最后一列

Link to working copy

对于您的具体示例,可能代码应如下所示:

=query(database; "select b,"&query(query(database; "select sum(c), where a='anyone-condition' "),"select * offset 1",0)&" where a='anyone-condition' order by c desc";-1)

但是,它应该根据实际数据进行测试

这是否符合您的需求?

另一答案

问题在于Google Spreadsheet'内核',而不是我的编码。看看我打印的尖叫声

https://drive.google.com/file/d/1yJbcfVZ1tDmW8WoG224PALRIwyEbX9LH/view?usp=sharing

以上是关于在QUERY中输出带有计算字段的标准化列的主要内容,如果未能解决你的问题,请参考以下文章

带有参数的 Power Query 无效列

在 Power Query 中获取多个日期范围(和 if 语句)内的输出

通过 Power Query 在 Excel 中的 Smartsheet 数据

Power Query - 在组函数中计算列中的非空白

Google Big Query 标准 SQL,在 SELECT 语句中添加一列

sap创建query报表查询时,选择字段按照顺序选择完毕,但测试时显示字段顺序颠倒