postgresql – 错误:对于SELECT DISTINCT,ORDER BY表达式必须出现在选择列表中

postgresql – 错误:对于SELECT DISTINCT,ORDER BY表达式必须出现在选择列表中,第1张

概述我有一个表“campaign_items”,其中包含列(预算,花费),我想使用公式计算剩余预算 剩余预算=预算 – 花费 现在我在查询下运行: select distinct a.budget,a.spent from campaign_items a where campaign_item_id=12345 order by a.budget-a.spent 但是我收到了错误: ERROR 我有一个表“campaign_items”,其中包含列(预算,花费),我想使用公式计算剩余预算
剩余预算=预算 – 花费

现在我在查询下运行:

select distinct a.budget,a.spent from campaign_items a where campaign_item_ID=12345 order by a.budget-a.spent

但是我收到了错误:

ERROR: for SELECT disTINCT,ORDER BY Expressions must appear in select List

注意:我无法从查询中删除disTINCT关键字,因为查询是使用JdbcTemplate生成的

任何人都可以帮我解决这个错误吗?

解决方法 我认为错误的根本原因是您使用ORDER BY a.budget – a.spent进行排序,但此表达式不会出现在SELECT子句中.在下面的查询中,我使用包含计算列的子查询进行排序,但之后只选择预算和用过的列.

select t.budget,t.spentfrom(    select distinct a.budget,a.spent,a.budget - a.spent as sort,from campaign_items a    where campaign_item_ID = 12345) torder by t.sort
总结

以上是内存溢出为你收集整理的postgresql – 错误:对于SELECT DISTINCT,ORDER BY表达式必须出现在选择列表中全部内容,希望文章能够帮你解决postgresql – 错误:对于SELECT DISTINCT,ORDER BY表达式必须出现在选择列表中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1160871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存