Postgresql 错误:HAVING的参数必须是布尔类型,而不是双精度类型

Postgresql 错误:HAVING的参数必须是布尔类型,而不是双精度类型,postgresql,arguments,aggregate-functions,Postgresql,Arguments,Aggregate Functions,我正试图在PostgreSQL中执行此查询 SELECT sum(No_of_Items) AS Total, Name FROM All_Bills_of_POS GROUP BY Name HAVING MAX(Total) ORDER BY Total DESC LIMIT 1"; 但我得到了一个错误: org.postgresql.util.PSQLException:错误:HAVING的参数必须是布尔类型,而不是双精度类型 但是这个查询在SQLite中运行良

我正试图在PostgreSQL中执行此查询

  SELECT sum(No_of_Items) AS Total,
         Name FROM All_Bills_of_POS
GROUP BY Name
  HAVING MAX(Total)
ORDER BY Total DESC LIMIT 1";
但我得到了一个错误:

org.postgresql.util.PSQLException:错误:HAVING的参数必须是布尔类型,而不是双精度类型

但是这个查询在SQLite中运行良好。如何在PostgreSQL中执行它?

拥有MAXTotal应该有一些条件。例如

最大值大于100

此条件应返回布尔值,即true或false。

具有MAXTotal的值应具有某些条件。例如

最大值大于100


此条件应返回布尔值,即true或false。

HAVING子句的计算结果不是布尔值。我想你需要这样的东西:

SELECT sum(No_of_Items) AS Total, Name 
FROM All_Bills_of_POS 
GROUP BY Name 
HAVING MAX(Total) > 1
ORDER BY Total DESC 
LIMIT 1

HAVING子句的计算结果不是布尔值。我想你需要这样的东西:

SELECT sum(No_of_Items) AS Total, Name 
FROM All_Bills_of_POS 
GROUP BY Name 
HAVING MAX(Total) > 1
ORDER BY Total DESC 
LIMIT 1

实际上,由于您正在检索一行,其中包含最多项的名称是最大的sumNo\u,因此根本不需要HAVING子句。放下它:

选择项目总数,名称 从所有的账单中 按名称分组 有MAXTotal 按总说明、名称排序-分条器 限值1; 我还按项目添加名称作为额外的顺序,以确定的方式打破平局:如果多个名称最多平局,则按字母顺序排列的第一个获胜


如果您的目标是其他内容,您应该与我们分享您在任何情况下都应该执行的问题。

事实上,由于您检索的是一行,其中包含最多项的名称是项中最大的sumNo,因此您根本不需要HAVING子句。放下它:

选择项目总数,名称 从所有的账单中 按名称分组 有MAXTotal 按总说明、名称排序-分条器 限值1; 我还按项目添加名称作为额外的顺序,以确定的方式打破平局:如果多个名称最多平局,则按字母顺序排列的第一个获胜

如果你的目标是其他东西,你应该与我们分享你在任何情况下都应该做的问题