Я пытаюсь написать запрос, используя BigQuery Standard SQL (так как есть некоторые функции, которые мы хотим использовать).BigQuery: стандартный SQL и функция PERCENTILE_CONT()
Есть ли эквивалентная функция в стандартном SQL для PERCENTILE_CONT(), поскольку она поддерживается только при использовании опции Legacy SQL?
WITH
CTE_EmployeeData AS (
SELECT
E.JobID,
E.FB1
FROM
ZA_Month_End_190.Employee_Primary_Data E
WHERE
JobID IN UNNEST([111,1414]) /* For these specidifc jobs */
),
CTE_Stats AS (
SELECT
JobID,
COUNT(*) SampleSize,
SUM(CASE WHEN FB1 > 0 THEN 1 ELSE 0 END) WtdSampleSize_FB1,
CAST(SUM(FB1) AS INT64) WtdSum_FB1
FROM
CTE_EmployeeData
GROUP BY
JobID
),
CTE_Percentiles AS (
SELECT
ED.JobID,
CASE
WHEN S.SampleSize > 10
THEN PERCENTILE_CONT(0.25) OVER (PARTITION BY ED.JobID ORDER BY ED.FB1 DESC) [Percentile1]
ELSE 0
END [FB1_Percentile1]
FROM
CTE_Stats S
INNER JOIN CTE_EmployeeData ED ON S.JobID = ED.JobID
)
SELECT
*
FROM
CTE_Percentiles
Это работа продолжается, но пока не доступен. Можете ли вы привести пример того, что вы пытаетесь сделать? Возможно, можно эмулировать одну и ту же функциональность, например, путем вычисления квантилей. –
Привет Эллиот, я обновил вопрос на примере - пожалуйста, дайте мне знать, если это будет достаточно. –