计算 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       

如果应用于您问题中的示例数据 - 输出为