计算 BigQuery 中每个经理的工资中位数 SQL

Computing the median of salaries under each manager in BigQuery SQL

我有一个 BigQuery table,其中包含以下列:employeesalarygendermanager。我想计算每个团队(因此,对于每个经理)女性员工工资的中位数。

我试过使用 PERCENTILE_CONT(..., 0.5) navigation function 但它似乎不支持 GROUP BY

这是我的查询:

SELECT
  manager,
  PERCENTILE_CONT(salary,
    0.5) OVER() AS median_of_women_salaries
FROM
  employees_table
WHERE
  gender = 'woman'
GROUP BY
  manager

我得到的是错误信息:

"SELECT list expression references column salary which is neither grouped nor aggregated at [.:.]"

因此,我想得到一个 table,其中包含列 managermedian_of_women_salaries,这将显示每位经理手下的女性工资的中位数。

非常感谢您的帮助!

您可以使用现有的共享 UDF:

SELECT
  manager,
  fhoffa.x.median(ARRAY_AGG(salary)) AS median_of_women_salaries
FROM employees_table
WHERE gender = 'woman'
GROUP BY manager