Google bigquery bigquery中的Rank()

Google bigquery bigquery中的Rank(),google-bigquery,Google Bigquery,我试图根据产品的数量分配等级值(例如,产品1的数量为100,最大值应为等级1,产品2的第二高数量为80,应为等级2,依此类推),但当我执行下面的查询时,我得到一个错误,说明-在表中未找到字段“rank\u”。请告诉我哪里出了问题 SELECT ProdName, NoofProds, rank_ FROM ( SELECT ProdName, COUNT(ProdName) AS NoofProds, RANK() OVER (PARTITION BY P


我试图根据产品的数量分配等级值(例如,产品1的数量为100,最大值应为等级1,产品2的第二高数量为80,应为等级2,依此类推),但当我执行下面的查询时,我得到一个错误,说明-在表中未找到字段“rank\u”。请告诉我哪里出了问题

SELECT
  ProdName,
  NoofProds,
  rank_
FROM (
  SELECT
    ProdName,
    COUNT(ProdName) AS NoofProds,
    RANK() OVER (PARTITION BY ProdName ORDER BY NoofProds DESC) AS rank_
  FROM
    [prodtable]
  WHERE
    (STRFTIME_UTC_USEC(Timestamp,"%Y%m%d")) = (STRFTIME_UTC_USEC(DATE_ADD(CURRENT_TIMESTAMP(), -1, "day"), "%Y%m%d"))
  GROUP BY
    1,
    3
  ORDER BY
    2 DESC)
GROUP BY
  1,
  2,
  3
ORDER BY
  rank_ DESC
试试下面

SELECT
  ProdName,
  NoofProds,
  RANK() OVER(ORDER BY NoofProds DESC) AS rank_ 
FROM
(
  SELECT
    ProdName,
    COUNT(ProdName) AS NoofProds 
  FROM [prodtable]
  WHERE (STRFTIME_UTC_USEC(Timestamp,"%Y%m%d")) = (STRFTIME_UTC_USEC(DATE_ADD(CURRENT_TIMESTAMP(), -1, "day"), "%Y%m%d"))
  GROUP BY 1
)
ORDER BY rank_ DESC