SUM或执行一些算术运算时出错

问题描述

每当我执行诸如SUM或算术运算之类的操作时,都会出现这样的错误

SELECT id,car_model,SUM(price) FROM car;
ERROR:  function sum(character varying) does not exist
LINE 1: SELECT id,SUM(price) FROM car;
                        ^

提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。

解决方法

如提示中所给,您将需要将price的{​​{1}}属性类型转换为数字格式,例如VARCHAR。您可以尝试:

DECIMAL
,

您的查询存在多个问题。首先,price作为字符串存储。你应该解决这个问题。它应该是一个数字。希望可以将其转换为数字。

第二,您的查询是没有group by的聚合查询。因此,您可以尝试:

SELECT id,car_model,SUM(price::numeric) -- or use whatever type is appropriate
FROM car
GROUP BY id,car_model;

您可能会遇到转换错误。但这是因为您有一个错误的数据模型,该模型允许使用非数字价格。