【发布时间】:2021-07-19 00:24:44
【问题描述】:
我有一个具有以下结构的红移表
titleId | country | updateTime | value
ID1 | US | 2020-01-01 00:00:00.000 | someValueA
ID1 | US | 2020-01-01 00:00:01.000 | someValueB
ID1 | IN | 2020-01-04 00:00:05.000 | someValue
ID2 ....
ID3....
ID1 | US | 2021-02-02 00:00:00.000 | someValue5
ID1 | GB | 2021-02-02 00:00:00.000 | someValue5
我试图找到 3 个集合,所有 titleIds [最好是整行,而不仅仅是 titleIds 的列表],它们的国家/地区在美国之后, 反之,在 IN 之后有 US 以及所有只有 IN 条目而没有其他内容的标题。
现在我们有可能对于一个 titleId 有以下顺序 IN、US、IN、US,在这种情况下,我们在 IN 之后有 2 个 US 实例。
我最初想在同一张表上进行内部联接,这可以帮助我找到同时具有美国和印度领土的记录。但是后来我无法弄清楚如何使用这些结果来根据之前的内容进行过滤。是否可以通过 Redshift SQL?是否需要我在进行某种过滤后编写一些自定义代码?
【问题讨论】:
-
编辑您的问题并显示您想要的结果。
-
表格是无序的。每当出现查询时,您必须关心单个表中行的顺序,这里就是这种情况,您需要使用窗口函数。窗口函数基本上对单个表中的行进行临时排序。
标签: sql amazon-web-services amazon-redshift