【postgresql】ERROR: column “xxxx.id“ must appear in the GROUP BY

2023-09-22 14:09:39

org.postgresql.util.PSQLException: ERROR: column "xxx.id" must appear in the GROUP BY clause or be used in an aggregate function
 

错误:列“XXXX.id”必须出现在GROUP BY子句中或在聚合函数中使用

在mysql中是正常使用的,在postgresql是不可以的。

具体SQL 脱敏后的示例:

SELECT
	ID,
	tenant_id,
	remarks,
	SOURCE,
	create_user,
	create_time,
	update_user,
	update_time,
	work_source,
	platform_no
FROM
	work_base 

GROUP BY
	work_source

在标准 SQL 中,包含GROUP BY子句的查询不能引用选择列表中未在GROUP BY子句中命名的非聚合列

MySQL 扩展了 的使用,GROUP BY以便选择列表可以引用未在GROUP BY子句中命名的非聚合列。前面的查询在 MySQL 中是合法的。

可以使用此功能通过避免不必要的列排序和分组来获得更好的性能。但是,这主要在每个未在 中命名的非聚合列中的所有值GROUP BY对于每个组都相同时很有用。服务器可以从每个组中自由选择任何值,因此除非它们相同,否则选择的值是不确定的。此外,从每个组中选择值不会受到添加ORDER BY子句的影响。结果集的排序发生在选择了值之后,并且ORDER BY不影响服务器选择每个组中的哪些值。

SQL92 及更早版本不允许查询的选择列表、HAVING 条件或 ORDER BY 列表引用未在 GROUP BY 子句中命名的非聚合列。

SQL99 及更高版本根据可选功能 T301 允许此类非聚合如果它们在功能上依赖于 GROUP BY 列。

怎么破解:

在子查询中完成聚合,然后关联包含需要显示字段的表。

SELECT
	t.ID,
	t.tenant_id,
	t.remarks,
	t.SOURCE,
	t.create_user,
	t.create_time,
	t.update_user,
	t.update_time,
	t.work_source
FROM (

    SELECT  work_source
    FROM
	    work_base 
    WHERE
	     work_source IS NOT NULL
    GROUP BY
	    work_base 


) t  LEFT JOIN work_base wb   ON t.work_source= wb.work_source
  




美图欣赏

更多推荐

文举论金:黄金原油全面走势分析策略指导。

市场没有绝对,涨跌没有定势,所以,对市场行情的涨跌平衡判断就是你的制胜法宝。欲望!有句意大利谚语:让金钱成为我们忠心耿耿的仆人,否则,它就会成为一个专横跋扈的主人。空头,多头都能赚钱,唯有贪心不能赚。是你掌控欲望还是欲望掌控你?古人云:不积硅步无以至千里,不积小流无以成江海。希望这句话成为我们之间的共勉。自知!人贵自知

R语言绘图-3-Circular-barplot图

0.参考:https://r-graph-gallery.com/web-circular-barplot-with-R-and-ggplot2.html1.说明:利用ggplot绘制环状的条形图(circularbarplot),并且每个条带按照数值大小进行排列。2绘图代码:注意:绘图代码中的字体为“TimesNew

什么是单页面应用(SPA)?它们的优点和缺点是什么?

聚沙成塔·每天进步一点点⭐专栏简介⭐什么是单页面应用(SPA)?⭐SPA的优缺点是什么?⭐SPA中如何处理搜索引擎优化(SEO)?⭐什么是前端路由(Front-endrouting)在SPA中的作用是什么?⭐SPA中如何处理浏览器历史记录和页面刷新?⭐SPA通常使用哪些前端框架或库来简化开发?⭐写在最后⭐专栏简介前端入

WebGL笔记: 2D和WebGL坐标系对比和不同的画图方式, 程序对象通信,顶点着色器,片元着色器

WebGL坐标系canvas2d画布和webgl画布使用的坐标系都是二维直角坐标系,但它们坐标原点、y轴的坐标方向,坐标基底都不一样canvas2d坐标系的原点在左上角,x轴朝右,y轴朝下1个单位的宽就是一个像素的宽,1个单位的高就是一个像素的高,都是按像素来走webgl坐标系的原点在画布中心,x轴朝右,y轴朝上1个单

在线客服系统品牌排行榜

客服系统是针对企业和组织的客户服务领域开发和提供的一种信息化系统。它可以帮助企业更好地管理与顾客之间的沟通、反馈和服务等。随着互联网技术和人工智能技术的不断发展,市场上的客服系统产品越来越多,如何选择一款适合自己的产品成为众多企业和组织面临的问题。今天,我们为大家提供客户服务系统排行榜热门品牌榜,为大家在做选择时提供可

LeetCode 1588. Sum of All Odd Length Subarrays

Givenanarrayofpositiveintegersarr,returnthesumofallpossibleodd-lengthsubarraysofarr.Asubarrayisacontiguoussubsequenceofthearray.Example1:Input:arr=[1,4,2,5,3]Ou

ACT汽车电子与软件技术周回顾 | 龙智技术专家分享汽车行业中版本控制与静态扫描的最佳实践

在2023ACT汽车电子与软件技术周期间,我们对话了龙智资深顾问、技术支持部门负责人李培,他聚焦结合行业趋势、自身经验与过往成功案例,分享了版本控制与静态代码扫描在汽车行业中的应用与实践。此外,还对比分析了包括Git、SVN等的多款工具,为大家提供帮助与参考。对话龙智技术负责人、“TechnicalHero”李培,探索

springboot和vue:五、RESTful服务+HTTP状态码+swagger配置

RESTfulRESTful的特点每一个URI代表一种资源客户端使用GET、POST、PUT、DELETE四种表示操作方式的动词对服务端资源进行操作:POST用于新建资源(也可以用于更新资源),PUT用于更新资源资源的表现形式是JSON或者HTML。客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请

安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配

近日,杭州安恒信息技术股份有限公司(以下简称“安恒信息”)签署了CLA(ContributorLicenseAgreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis),并成为龙蜥社区安全联盟(OASA)首批成员单位。安恒信息于2007年创立,秉承着企业使命“构建安全可信的数字世界”,将数字经济安全视

自己动手写数据库:关系代数和查询树执行效率的推导

上几节我们完成了sql解释器的实现。通过解析sql语句,我们能知道sql语句想做什么,接下来就需要执行sql语句的意图,也就是从给定表中抽取所所需要的数据。要执行sql语句,我们需要了解所谓的“关系代数”,所谓代数本质上就是定义操作符和操作对象,在关系代数里,操作符有三种,分别为select,project和produ

什么是BI报表?

文章目录出现背景BI商务智能报表BI和报表的区别从功能看从平台看从开发过程看BI报表的好处出现背景对现代企业而言,数据分析的重要性已越来越明显。但对于日渐复杂的数据来说,使用excel处理已然不能满足解决问题的需要,同时效率也不高,于是诞生了BI,businessintelligence商务智能,也相应出现了报表。BI

热文推荐