小菜鸡_弱弱 2023-01-11 10:18 采纳率: 84.1%
浏览 59
已结题

mysql语句转postgresql语句

需要把mysql的语句转换成postgresql的语句,如图第一语句在postgresql中无法执行,因为有聚合函数其他列就也需要聚合

img

我想着那就把聚合单独拿出来计算,所以就改造成了第二条sql的样子

img

虽然可以执行但是返回的数据有问题,正常第一条sql中执行完应该返回如下信息

img

所以以上问题出在哪里呢,如果想改造应该怎么改呢
附sql:
SELECT '2023-01-01' initialTimePoint, '2023-01-01' timePoint, count(id) result, r.appsysid FROM mysql_finger r WHERE r.create_time >= '2023-01-01' AND r.create_time < '2023-01-02' and '1' = '1'



  • 写回答

4条回答 默认 最新

  • leaf_cq 2023-01-11 10:29
    关注

    1、经MySQL5.7测试,当一个包count聚合函数的SQL中包含表的其他列如题主中的r.appsysid时,如果r.appsysid在结果集中的所有值均为同一个值时,可以不使用GROUP BY语句也能正常执行出结果,但,这个不是标准语法,在PostGresQL中是无法执行的,修改起来也很简单,加个GROUP BY语句即可:

    SELECT '2023-01-01' initialTimePoint, '2023-01-01' timePoint, count(id) result, r.appsysid
      FROM mysql_finger r
     WHERE r.create_time >= '2023-01-01' AND r.create_time < '2023-01-02' and '1' = '1'
     GROUP BY r.appsysid;
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月28日
  • 创建了问题 1月11日

悬赏问题

  • ¥15 WPS访问权限不足怎么解决
  • ¥15 java幂等控制问题
  • ¥15 海湾GST-DJ-N500
  • ¥15 氧化掩蔽层与注入条件关系
  • ¥15 Django DRF 如何反序列化得到Python对象类型数据
  • ¥15 多数据源与Hystrix的冲突
  • ¥15 如何在线硕士了解,广告太多,希望有真实接触过的人回答下?(标签-学习|关键词-在线硕士)
  • ¥15 zabbix6.4与frp如何进行联动
  • ¥15 如何使用Echarts制作途中时间序列表
  • ¥15 图论相关的数学问题,共10个