gpt4 book ai didi

sql - 如何提取去极端化的常见行为?

转载 作者:行者123 更新时间:2023-11-29 13:05:46 25 4
gpt4 key购买 nike

对于某些报告,我需要通过类似这样的方式从考虑中删除极低和极高的值

SELECT ...
FROM
(
SELECT val, ntile(10) OVER(ORDER BY val) AS tile FROM table
) AS tiled_table
WHERE tile > 1 AND tile < 10

它可以提取到存储过程中,该存储过程将采用表名和列名,连接字符串并执行查询,但有时我需要在另一个查询的结果上使用此过程。在 PostgreSQL 中有什么方法可以做到这一点吗?

最佳答案

要解决这个问题,您将需要动态 SQL。通常,您不能在查询中使用动态表名。引用http://www.postgresql.org/docs/9.2/static/ecpg-dynamic.html , 有关动态 SQL 的信息。

如果您将查询构造为:

FROM
(
SELECT val, ntile(10) OVER(ORDER BY val) AS tile FROM <subquery> t
) AS tiled_table

然后,当子查询被括在括号中时,这将起作用。如果括号不在原始查询中,您可以添加括号。

关于sql - 如何提取去极端化的常见行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13070927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com