0

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

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

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

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

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

Sample_Input_File

预期输出

4

1 回答 1

1

如果我理解正确,您想对结果进行排序并添加按 . 分组的每一行的位置S_Number。如果是这样,这在 SQL 和 Redshift 中称为“窗口函数”,您可以获得与下面的查询共享的结果一样的结果。请注意我没有运行查询,所以它可能有一个小的语法错误(希望没有)。

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
于 2019-02-25T11:17:25.360 回答