首页 > 解决方案 > BigQuery,如何在 where 子句中使用别名?

问题描述

我有这个小查询,BigQuery 无法识别别名 maxdate,我正在尝试返回表,但仅针对最后一个日期

WITH
  maxdate AS (
  SELECT
    MAX(DATE(SETTLEMENTDATE))
  FROM
    `biengine-252003.aemo2.daily`)
SELECT
  *
FROM
  `biengine-252003.aemo2.daily`
WHERE
  DATE(SETTLEMENTDATE)= maxdate

标签: sqlgoogle-bigquery

解决方案


您正试图maxdate从您的表中获取值maxdate。将别名添加到您的列并使用它。

WITH
  maxdate AS (
  SELECT
    MAX(DATE(SETTLEMENTDATE)) as mx
  FROM
    `biengine-252003.aemo2.daily`)
SELECT
  *
FROM
  `biengine-252003.aemo2.daily`
WHERE
  DATE(SETTLEMENTDATE) = (SELECT mx FROM maxdate LIMIT 1)

推荐阅读