【发布时间】:2019-05-24 21:10:26
【问题描述】:
我正在寻找一种将 SQL 中的平均值相加的方法。这是我拥有的数据示例:
product avg_price
phone 104.28
car 1000.00
我正在寻找这样的东西:
product avg_price
[all] 544.27
phone 104.28
car 1000.00
我目前的做法是将计数和总和存储在两个不同的列中,例如:
product cnt total
phone 203 20,304.32
car 404 304,323.30
然后从中得到平均值。但是,我想知道是否有可能在 SQL 中只“保留分数”并能够根据需要添加它们。例如:
product avg_price
[all] [add the fractions]
phone 20,304.32 / 203
car 304,323.30 / 404
或者我是否需要使用两列才能获得多个聚合行的平均值?
【问题讨论】:
-
显然你需要每行的计数和总计!您将它存储在两列还是一列中(例如作为结构)完全取决于您。作为选项,您可以为每行设置 avg 和 count 或 total - 这样您就可以重新计算缺失的属性
-
这是一个数学问题而不是编程问题:是的,你需要两列。
标签: sql google-bigquery