排序和标记数据
Sorting and Flagging the data
我在 Amazon Redshift 服务器中有一个巨大的数据集,我需要对数据集进行一些排序和标记(附加的示例数据集以供参考)。我需要完成两个任务:
- 我需要按
S_Number
和 days_difference
的升序对数据进行排序
标记 - 需要创建一个名为 flag
的新列,它应该执行以下步骤:
- 如果我的第 1 行:
S_Number = row -1: S_Number then row -1: Flag +1 else 1
。
我正在使用 Alteryx 提取数据,但我仍然使用 SQL 查询来完成任务。任何帮助都会很有帮助。
我已经给出了示例输入文件的链接以及预期的输出。让我知道我的问题不清楚。
如果我没理解错的话,你想对结果进行排序并添加按 S_Number
分组的每一行的位置。如果是这样,则在 SQL 和 Redshift 中称为 "window function",您可以获得类似于您在下面的查询中共享的结果。请注意我没有 运行 查询所以它可能有一个小的语法错误(希望没有)。
SELECT timestamp, S_Number, days_difference, ROW_NUMBER () OVER
(PARTITION BY S_Number ORDER BY timestamp ASC) AS Flag
FROM your_table
ORDER BY S_Number ASC, timestamp ASC
我在 Amazon Redshift 服务器中有一个巨大的数据集,我需要对数据集进行一些排序和标记(附加的示例数据集以供参考)。我需要完成两个任务:
- 我需要按
S_Number
和days_difference
的升序对数据进行排序 标记 - 需要创建一个名为
flag
的新列,它应该执行以下步骤:- 如果我的第 1 行:
S_Number = row -1: S_Number then row -1: Flag +1 else 1
。
- 如果我的第 1 行:
我正在使用 Alteryx 提取数据,但我仍然使用 SQL 查询来完成任务。任何帮助都会很有帮助。
我已经给出了示例输入文件的链接以及预期的输出。让我知道我的问题不清楚。
如果我没理解错的话,你想对结果进行排序并添加按 S_Number
分组的每一行的位置。如果是这样,则在 SQL 和 Redshift 中称为 "window function",您可以获得类似于您在下面的查询中共享的结果。请注意我没有 运行 查询所以它可能有一个小的语法错误(希望没有)。
SELECT timestamp, S_Number, days_difference, ROW_NUMBER () OVER
(PARTITION BY S_Number ORDER BY timestamp ASC) AS Flag
FROM your_table
ORDER BY S_Number ASC, timestamp ASC