【发布时间】:2021-02-10 05:22:40
【问题描述】:
我有一张看起来像这样的表
instID xx yy zz
2 2 9 6
3 11 5 9
4 13 3 14
我想对字段 xx、yy、zz 运行 PERCENT_RANK() 查询,然后将它们保存到具有相同 instID 编号的表中。
现在我为每个人运行一个Percent_Rank 查询,但我无法弄清楚如何保存从查询中获得的数据,和/或是否可以分别为每个人进行排名但在同一个查询中?
这是我现在正在运行的简单代码
select
xx,
yy,
zz,
ROUND(
PERCENT_RANK() OVER (
ORDER BY xx desc
)
,2) percentile_rank
FROM table;
【问题讨论】:
-
我的猜测是,提出一个显示您想要的数据的查询,然后将其粘贴到 CTE 中,并使用该 CTE 的结果插入新表,或更新现有表.
-
那么您可以为您的 3 列中的每一列重复
percent_rank吗?然后正如 pmbAustin 所说,使用 CTE 更新/插入表格。不清楚您要在哪里保存它。
标签: sql sql-server tsql window-functions create-table