排序和标记数据

Sorting and Flagging the data

我在 Amazon Redshift 服务器中有一个巨大的数据集,我需要对数据集进行一些排序和标记(附加的示例数据集以供参考)。我需要完成两个任务:

  1. 我需要按 S_Numberdays_difference 的升序对数据进行排序
  2. 标记 - 需要创建一个名为 flag 的新列,它应该执行以下步骤:

    • 如果我的第 1 行:S_Number = row -1: S_Number then row -1: Flag +1 else 1

我正在使用 Alteryx 提取数据,但我仍然使用 SQL 查询来完成任务。任何帮助都会很有帮助。

我已经给出了示例输入文件的链接以及预期的输出。让我知道我的问题不清楚。

Sample_Input_File

Expected_Output

如果我没理解错的话,你想对结果进行排序并添加按 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