我不得不将我所有的旧 SQL 转换为标准 SQL。
在将其切换到标准 SQL 后,我尝试加入和 rank(),但收到一条错误消息:
“参数数量与分析函数 RANK 不匹配。支持的签名:RANK()”
这是否意味着函数 RANK() 在 SQL 标准中不起作用?Bigquery 突出显示“RANK(MILESTONE)”作为错误。
非常感谢您的帮助。
JOIN
(SELECT * FROM
(SELECT
CASE WHEN MILESTONE NOT LIKE '%M0' THEN 'CWV' ELSE MILESTONE END MILESTONE
, MAX((LAST_MODIFIED_DATE)) AS LAST_MODIFIED_DATE
, RANK(MILESTONE) OVER (ORDER BY MILESTONE DESC) AS RANK2 ------------NEED FIXING
FROM `XXXXX.com:dataservices.Finance.FINANCE_SF_PRODUCT_COST_SNAPSHOT`
WHERE LOCKED IS false
AND (DATE(LAST_MODIFIED_DATE) = (SELECT MAX(DATE(LAST_MODIFIED_DATE))
FROM `XXXXXX.com:dataservices.Finance.FINANCE_SF_PRODUCT_COST_SNAPSHOT`)
OR MILESTONE LIKE 'M0')
AND PMD_PRODUCT_STATUS NOT IN ('Canceled','End of Life','No Longer Shipping')
AND (MILESTONE NOT LIKE '%Exit%' OR MILESTONE NOT LIKE '%M0' OR MILESTONE NOT LIKE '%WP%')
AND MILESTONE <> '2021_Q2_M0' -- need to show new qtr after each 20th of the month (just increase the Q#+1)
GROUP BY 1
ORDER BY 2 DESC
)
WHERE RANK2 < 4 ------------NEED FIXING
) MILE
ON PCS.MILESTONES = MILE.MILESTONE