【发布时间】:2021-10-22 15:38:08
【问题描述】:
我有 2 个表:table1(包括 id、title 和 abstract)和 table2(包括 id、pubdate 和 family_id)。
每个 id 都是唯一的,但多行可以有相同的 family_id。
我的目标是仅显示每个 family_id 的 MIN(pubdate) 的 id、title 和 pubdate,以便我应该得到:
我试过了:
SELECT
t1.id, t1.title, nt2.pubdate
FROM
(SELECT
id, family_id, MIN(pubdate) AS pubdate
FROM
table2
GROUP BY
family_id) AS nt2
INNER JOIN
table1 t1
ON
t1.id = nt2.id
我在 BigQuery 中收到以下错误消息:“SELECT list expression references column id which is not grouped or aggregated at [position]”。
我读到here,这是因为相应 SELECT 列表中的所有表达式都必须是 GROUP BY 中的表达式,或者应该具有 AGGREGATION 函数。
但是,我确实需要 id 才能与 table1 合并。
我该怎么做?
【问题讨论】:
-
看起来你想要一个analytic function