开发者社区> 问答> 正文

postgresql执行sql row_number() over 时报错?报错

@wenshao 你好,想跟你请教个问题:

我在postgresql里执行一个sql的时候回报错错误信息如下,麻烦你帮忙看下,多谢


SELECT res.restaurant_id,   row_number()  over (order by ST_Distance(res.restaurant_point,GeomFromEWKT(?))*111.12 )  as row_id  FROM restaurant res where res.city_id = ? and res.is_delete =false and res.restaurant_id <1000000   limit 10

com.alibaba.druid.sql.parser.ParserException: TODO OVER over, pos 46

at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:226)

at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:70)

at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:41)

at com.alibaba.druid.filter.stat.StatFilter.mergeSql(StatFilter.java:145)

at com.alibaba.druid.filter.stat.StatFilter.createSqlStat(StatFilter.java:627)

at com.alibaba.druid.filter.stat.StatFilter.statementPrepareAfter(StatFilter.java:305)

展开
收起
爱吃鱼的程序员 2020-06-22 21:56:24 837 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    这个是不影响执行的,只会LOG.error,打错误日志。

    这是因为Druid的StatFilter的SQL合并模块调用了SQLParser,postgres的聚合函数不认识ROW_NUM函数。

    问题已经修复,如果着急,也可以使用最新版本的快照:http://code.alibabatech.com/mvn/snapshots//com/alibaba/druid/0.2.12-SNAPSHOT/

    多谢温少~
    2020-06-22 21:56:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载