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