【问题标题】:Taking Average of Money in SQL/SQLPro在 SQL/SQLPro 中取平均金额
【发布时间】:2016-12-05 23:02:00
【问题描述】:

我正在处理一个数据集,但在尝试计算包含美元货币的列的平均值时遇到了麻烦。例如,所有值都以 $12.00、$5.43、$1,234.00 的格式列出......

每当我使用下面的代码时,它都会返回 0 作为平均值。同样,它也对 SUM 命令执行相同的操作。

SELECT AVG(bill_amount) FROM Trips WHERE trip_date >= '08/13/13';

我使用的代码有问题吗,因为我觉得是对的。

【问题讨论】:

  • 是否该日期的帐单金额列中有任何内容?
  • 是的。事实上,我应该写 >= 而不是 =。它应该由几天组成。
  • 你使用的数据库是什么?
  • SQLPro for SQLLite for Mac。
  • 那么请删除sql-server标签。这适用于 Microsoft SQL Server

标签: ios sql macos sqlite


【解决方案1】:

您似乎将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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-22
    • 2012-06-30
    • 1970-01-01
    • 2023-03-26
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多