Bigquery - 计算值在列中出现的次数
Bigquery - Count how many time a value show up in a column
我有一个table这样的
Col1 | Col2 | Col3
A | 1 | 23
B | 3 | 23
B | 2 | 64
A | 4 | 75
C | 5 | 23
A | 6 | 12
A | 2 | 33
B | 3 | 52
A | 1 | 83
C | 5 | 24
A | 6 | 74
我需要一个查询来显示 Col1 中的值出现了多少次:
Col1 | Col2 | Col3 | Col4
A | 1 | 23 | 6
B | 3 | 23 | 3
B | 2 | 64 | 6
A | 4 | 75 | 6
C | 5 | 23 | 2
A | 6 | 12 | 6
A | 2 | 33 | 6
B | 3 | 52 | 3
A | 1 | 83 | 6
C | 5 | 24 | 2
A | 6 | 74 | 6
如何在 BigQuery 中执行此操作?
使用 window function
更容易
select *, count(*) over (partition by col1) as col4
from t;
你只需要使用window函数
select *, count(col1) over (partition by col
我有一个table这样的
Col1 | Col2 | Col3
A | 1 | 23
B | 3 | 23
B | 2 | 64
A | 4 | 75
C | 5 | 23
A | 6 | 12
A | 2 | 33
B | 3 | 52
A | 1 | 83
C | 5 | 24
A | 6 | 74
我需要一个查询来显示 Col1 中的值出现了多少次:
Col1 | Col2 | Col3 | Col4
A | 1 | 23 | 6
B | 3 | 23 | 3
B | 2 | 64 | 6
A | 4 | 75 | 6
C | 5 | 23 | 2
A | 6 | 12 | 6
A | 2 | 33 | 6
B | 3 | 52 | 3
A | 1 | 83 | 6
C | 5 | 24 | 2
A | 6 | 74 | 6
如何在 BigQuery 中执行此操作?
使用 window function
select *, count(*) over (partition by col1) as col4
from t;
你只需要使用window函数
select *, count(col1) over (partition by col