首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pg8000在sql脚本中使用位置参数

使用pg8000在sql脚本中使用位置参数
EN

Stack Overflow用户
提问于 2019-03-22 14:02:38
回答 1查看 506关注 0票数 0

我有以下SQL查询:

代码语言:javascript
复制
 query_string = "SELECT sum(unmatched), " \
                "TIMESTAMP WITH TIME ZONE 'epoch' + INTERVAL '1 second' * " \
                "round(extract('epoch' from time_window) / {}) * {} as time_window " \
                "FROM aggregate_counts WHERE reconciliation_name = %s " \
                "GROUP BY round(extract('epoch' from time_window) / {})".format(interval_sec, interval_sec, interval_sec)

 cur.execute(query_string, (reconciliation_name))

它可以正常工作,除非我想避免使用字符串替换"interval_sec“,而是使用位置参数,就像对其他参数一样。问题是,如果我这么做:

代码语言:javascript
复制
 query_string = "SELECT sum(unmatched), " \
                "TIMESTAMP WITH TIME ZONE 'epoch' + INTERVAL '1 second' * " \
                "round(extract('epoch' from time_window) / %s) * %s as time_window " \
                "FROM aggregate_counts WHERE reconciliation_name = %s " \
                "GROUP BY round(extract('epoch' from time_window) / %s)"

 cur.execute(query_string, (interval_sec, interval_sec, reconciliation_name, interval_sec))

我得到以下错误:

错误处理中间件发现了以下异常:{'S':' Error ','V':'ERROR','C':'42803','M':‘aggregate_counts.time_window’列必须出现在GROUP子句中,或者用于聚合函数'P':'177','F':‘解析_agg.c’,'L':'1344','R':'check_ungrouped_columns_walker'} 文件文件“ps 8000/core.py”,第1829行,在execute ps= cache'ps‘KeyError中:(“选择sum(不匹配的),时间戳带时区'epoch’+间隔‘1秒’*圆形(从time_window提取(‘epoch’)/‘%s’)* %s作为time_window从aggregate_counts ( reconciliation_name =%s组(从time_window提取(‘epoch’)/ %s)",((701,1,),(701,1),(701,1),(705,0,.text_out at 0x10c58cea0>))

位置参数能否仅用于比较(=,>=,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 20:34:28

所以这基本上是不可能的。原因是select子句中的%s将被转换为$x位置参数,而group by中的%s将被转换为$y (x和y是各自的位置)。现在,postgres没有办法知道,在解决后,这两者将是相同的。因此它假设"aggregate_counts.time_window“不存在于GROUP中。我知道这不是一个完美的解释,但这是正在发生的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55301313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档