我正在处理一个数据集,而我在尝试计算其中包含美元货币的列的平均值时遇到了麻烦。例如,所有值都以12.00美元,5.43美元,1,234.00美元的格式列出.....
每当我使用下面的代码时,它返回值为0作为平均值。同样,它也为SUM命令做了同样的事情。
SELECT AVG(bill_amount) FROM Trips WHERE trip_date >= '08/13/13';
我使用的代码是否有问题,因为我认为这是正确的。
答案 0 :(得分:0)
您似乎将bill_amount
列中的值存储为文本而不是数字。您可以将它们转换为数字,然后使用平均值。像这样:
select avg(cast(case when substr(bill_amount, 1, 1) between '0' and '9' then bill_amount
else substr(bill_amount, 2)
end) as decimal(18, 4))