码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【postgresql】ERROR: column “xxxx.id“ must appear in the GROUP BY


    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 脱敏后的示例:

    1. SELECT
    2. ID,
    3. tenant_id,
    4. remarks,
    5. SOURCE,
    6. create_user,
    7. create_time,
    8. update_user,
    9. update_time,
    10. work_source,
    11. platform_no
    12. FROM
    13. work_base
    14. GROUP BY
    15. 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 列。

    怎么破解:

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

    1. SELECT
    2. t.ID,
    3. t.tenant_id,
    4. t.remarks,
    5. t.SOURCE,
    6. t.create_user,
    7. t.create_time,
    8. t.update_user,
    9. t.update_time,
    10. t.work_source
    11. FROM (
    12. SELECT work_source
    13. FROM
    14. work_base
    15. WHERE
    16. work_source IS NOT NULL
    17. GROUP BY
    18. work_base
    19. ) t LEFT JOIN work_base wb ON t.work_source= wb.work_source




    美图欣赏

  • 相关阅读:
    Watch监听器的使用
    概率的学习和整理--番外6:概率的学习方法 和 解题方法
    QT modbus rtu 拖动主界面时,modbus的槽函数无法响应
    初识Redis
    Leecode热题100中图论章节 200. 岛屿数量 994. 腐烂的橘子 207. 课程表 208. 实现 Trie (前缀树)
    endnote20如何导入已经下载好的ris和pdf文件
    LLM各层参数详细分析(以LLaMA为例)
    常用测试用例设计方法之边界值分析法
    Nginx配置整合:基本概念、命令、反向代理、负载均衡、动静分离、高可用
    docker 查看容器挂载情况
  • 原文地址:https://blog.csdn.net/wochunyang/article/details/133168971
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号