【发布时间】:2017-04-12 11:26:48
【问题描述】:
我在 BigQuery 工作。我有一张表t1,其中包含地址、邮政编码、价格和日期字段。我想按地址和邮政编码对它进行分组,找到每个地址最近一行的价格。
如何在 BigQuery 中执行此操作?我知道如何获取地址、邮政编码和最近的日期:
SELECT
ADDRESS, POSTCODE, MAX(DATE)
FROM
[mytable]
GROUP BY
ADDRESS,
POSTCODE
但我不知道如何获取与这些字段匹配的这些行的价格。这是我最好的猜测,它确实会产生结果 - 这是正确的吗?
SELECT
t1.address, t1.postcode, t1.date, t2.price
FROM [mytable] t2
JOIN
(SELECT
ADDRESS, POSTCODE, MAX(DATE) AS date
FROM
[mytable]
GROUP BY
ADDRESS,
POSTCODE) t1
ON t1.address=t2.address
AND t1.postcode=t2.postcode
AND t1.date=t2.date
在我看来,这应该可行,但某些similar questions 的解决方案要复杂得多。
【问题讨论】:
-
嗯,我觉得应该是
INNER JOIN?
标签: sql google-bigquery