排序和标记数据

时间:2019-02-25 10:33:34

标签: sql amazon-web-services amazon-redshift alteryx

我有一个巨大的数据集位于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

1 个答案:

答案 0 :(得分: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