ERROR: type "sum" does not exist
2019-11-15 14:09 abce 阅读(1555) 评论(0) 编辑 收藏 举报开发问pg中执行一个简单的语句,多次报错:
1 2 3 | > ERROR: type "sum" does not exist LINE 1: SELECT SUM ^ |
看看具体的语句,其实是个很简单的语句,怎么会报类型sum不存在呢?
1 2 3 4 5 6 7 8 9 | SELECT SUM (es.money_stock ) 'sum_money' , es.material_no, es.price FROM es GROUP BY es.material_no, es.price; |
其实这是的问题在于select语句中列的别名的写法规范问题。以下是pg文档中的描述:
在SQL标准中,只要新列名是有效的列名(即与任何保留关键字不同),就可以在输出列名之前省略可选关键字AS。
PostgreSQL的限制更严格:如果新的列名完全匹配任何关键字,则保留AS,无论是否是保留字。
推荐的做法是使用AS或双引号输出列名,以防止与将来添加关键字的任何可能的冲突。
在FROM项中,标准sql和PostgreSQL都允许省略AS之前的AS,如果该别名不是保留的关键字。但是由于语法上的歧义,这对于输出列名称是不切实际的。
所以这里真正的问题是单引号的使用。去掉单引号即可。 当然也可以将单引号换成双引号。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2017-11-15 windows Server 2012安装GUI