在标准SQL大查询中是否保留SAS的等效项?

问题描述 投票:1回答:1

我有一个如下表:

Row | Fullvisitorid | Visitid | New_Session_Flag 
1   | A             | 111     | 1
2   | A             | 120     | 0
3   | A             | 128     | 0
4   | A             | 133     | 0
5   | A             | 745     | 1
6   | A             | 777     | 0
7   | B             | 388     | 1
8   | B             | 401     | 0
9   | B             | 420     | 0
10  | B             | 777     | 1
11  | B             | 784     | 0
12  | B             | 791     | 0
13  | B             | 900     | 1  
14  | B             | 904     | 0  

我想做的是,如果它是fullvisitorid的第一行,然后将该字段标记为1,否则使用上面的行作为值,但是如果new_session_flag = 1则使用上面的行加1,输出示例I正在寻找以下内容:

Row | Fullvisitorid | Visitid | New_Session_Flag | Rank_Session_Order
1   | A             | 111     | 1                | 1
2   | A             | 120     | 0                | 1
3   | A             | 128     | 0                | 1
4   | A             | 133     | 0                | 1
5   | A             | 745     | 1                | 2
6   | A             | 777     | 0                | 2
7   | B             | 388     | 1                | 1
8   | B             | 401     | 0                | 1
9   | B             | 420     | 0                | 1
10  | B             | 777     | 1                | 2
11  | B             | 784     | 0                | 2
12  | B             | 791     | 0                | 2
13  | B             | 900     | 1                | 3
14  | B             | 904     | 0                | 3

所以第1行是1,因为它是第一次出现fullvisitorid A

行2为1,因为它不是第一次出现fullvisitorid A,并且new_session_flag <> 1因此它使用上面的行(即1)

行5为2,因为这不是第一次出现fullvisitorid A,并且new_session_Flag = 1,因此它使用上面的行(即1)加1]

第7行是1,因为它是第一次出现fullvisitorid B

我相信这可以通过SAS中的一个保留语句来完成,但是在大查询中是否有等效项?]

希望以上内容有意义,如果没有,请告诉我。

提前感谢

我有一个如下表:行| Fullvisitorid | Visitid | New_Session_Flag 1 | A | 111 | 1 2 | A | 120 | 0 3 | A | 128 | 0 4 | ...

sql google-bigquery sas retain
1个回答
0
投票

下面是BigQuery标准SQL的内容>>

#standardSQL
SELECT *,
  COUNTIF(New_Session_Flag = 1) OVER(PARTITION BY Fullvisitorid  ORDER BY Visitid) Rank_Session_Order
FROM `project.dataset.table`
© www.soinside.com 2019 - 2024. All rights reserved.