计算 BigQuery 中 3 列的中位数 table
Calculating median of 3 columns in a BigQuery table
我正在尝试构建一个查询来计算 3 列值的中位数。我的 table 如下所示,
Item
Column 1
Column 2
Column 3
A
10
12
4
B
5
14
20
C
15
5
4
我要能输出,
Item
Column 1
Column 2
Column 3
Median
A
10
12
4
10
B
5
14
20
14
C
15
5
4
5
我试过 percentile_cont() 但这似乎只适用于单个列中的值。我该如何实现?
你试过这个吗:
select Col1, Col2, Col3,
PERCENTILE_CONT([Col1, Col2, Col3], 0.5) OVER() AS Median
from tableName
考虑以下方法
select *,
( select distinct percentile_disc(col, 0.5) over()
from unnest([Column1, Column2, Column3]) as col
) AS Median
from your_table
如果应用于您问题中的示例数据 - 输出为
我正在尝试构建一个查询来计算 3 列值的中位数。我的 table 如下所示,
Item | Column 1 | Column 2 | Column 3 |
---|---|---|---|
A | 10 | 12 | 4 |
B | 5 | 14 | 20 |
C | 15 | 5 | 4 |
我要能输出,
Item | Column 1 | Column 2 | Column 3 | Median |
---|---|---|---|---|
A | 10 | 12 | 4 | 10 |
B | 5 | 14 | 20 | 14 |
C | 15 | 5 | 4 | 5 |
我试过 percentile_cont() 但这似乎只适用于单个列中的值。我该如何实现?
你试过这个吗:
select Col1, Col2, Col3,
PERCENTILE_CONT([Col1, Col2, Col3], 0.5) OVER() AS Median
from tableName
考虑以下方法
select *,
( select distinct percentile_disc(col, 0.5) over()
from unnest([Column1, Column2, Column3]) as col
) AS Median
from your_table
如果应用于您问题中的示例数据 - 输出为