Sql 可以在查询中保留分数吗?
我正在寻找一种在SQL中计算平均值的方法。以下是我拥有的数据示例:Sql 可以在查询中保留分数吗?,sql,google-bigquery,Sql,Google Bigquery,我正在寻找一种在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 p
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
或者我需要使用两列来获得多个聚合行的平均值吗?获得平均值不需要两列,但如果要显示为分数,则需要两个数字。不过,它们不需要在两列中
select product, sum(total) ||'/'||sum(count)
from table a
join table b on a.product=b.product
union
select product, total ||'/'||count
from table a
join table b on a.product=b.product;
显然,每行都需要计数和合计!您是将其存储在两列中还是一列中(例如,作为结构)完全取决于您。作为选项,您可以为每一行设置avg和count或total,这样您就可以重新计算缺少的属性这更像是一个数学问题,而不是一个编程问题:是的,您需要两列。