sql - 如何在 SQL 中添加包含 ZScore 的新列
问题描述
我正在尝试将名为 [Z Score] 的列更新到我的 SQL 表中。我已经编写了在 SELECT 查询中创建新列的代码,如下所示:
SELECT cd.*
FROM (
SELECT [Cardholder Name], [Transaction Date], [Merchant],
[Debit Amount],
(
[Debit Amount] -
AVG([Debit Amount]) OVER ()) / (STDEV([Debit Amount]) OVER ()
) as [ZScore]
FROM ['PCard Output']
) cd;
话虽如此,当谈到使用 UPDATE 查询将数据实际添加到列 [Z 分数] 时,我迷失了方向。我正在使用 SQL Server 17。任何帮助将不胜感激!
解决方案
简单地:
UPDATE T
SET YourColumn = cd.[ZScore]
FROM
(
SELECT [Cardholder Name],
[Transaction Date],
[Merchant],
[Debit Amount],
([Debit Amount] - AVG([Debit Amount]) OVER ()) / (STDEV([Debit Amount]) OVER ()) as [ZScore]
FROM ['PCard Output']
) cd INNER JOIN YourTable T ON cd.ID = T.ID;
请注意,我认为您不需要您选择的其他列,因此您的查询可能如下所示:
UPDATE T
SET YourColumn = cd.[ZScore]
FROM
(
SELECT ([Debit Amount] - AVG([Debit Amount]) OVER ()) / (STDEV([Debit Amount]) OVER ()) as [ZScore]
FROM ['PCard Output']
) cd INNER JOIN YourTable T ON cd.ID = T.ID;
或者
UPDATE YourTable
SET YourColumn =
(
SELECT ([Debit Amount] - AVG([Debit Amount]) OVER ()) / (STDEV([Debit Amount]) OVER ()) as [ZScore]
FROM ['PCard Output']
);
推荐阅读
- python - 新山开始时的昨天日期(Python)
- neo4j - 在 Neo4j GraphQL 2.0 中替代 @additionalLabels
- sprite-kit - SpriteKit:如何保持空 SKLabelNode 的高度
- reactjs - 三重条件渲染
- sql - 如何基于共享键的其他行进行聚合?
- c# - 将文本发送到另一个应用程序 C# WPF 在 Windows 上可运行
- python - 如何在 siuba python 包中编写相当于 R 的 %in%?
- python - 在 Python Pandas 中获取 NaN 作为输出
- flutter - 搜索栏上的自动完成非常慢
- webpack - Webpack 5:禁用主机检查