我有 2 个表我想加入以探索最受欢迎的位置组合,按不同的 ID,按计数排序。我从 l 获得位置,从 d 获得日期。此连接的结果将是:
id loc_id location date
1 111 NYC 20200101
1 222 LA 20200102
2 111 NYC 20200103
2 333 LON 20200103
3 444 NYC 20200105
4 444 LA 20200106
4 555 PAR 20200107
5 111 NYC 20200110
5 222 LA 20200111
如果可能,我想使用 STRING_AGG,但 WITHIN 语句出错 -
'期待')'但在里面
..(我为此使用 BigQuery)。这是我到目前为止所尝试的。
SELECT t.combination, count(*) count
FROM (
SELECT
STRING_AGG(location, ',') WITHIN GROUP (ORDER BY d.date) combination
FROM location as l
JOIN date d
USING (loc_id)
GROUP BY id
) t
WHERE date BETWEEN 20190101 AND 20200228 GROUP BY t.combination
ORDER BY count DESC;
我想最终得到类似的东西:
combination count
NYC, LA 3
NYC, LON 1
LA, PAR 1
NYC 1
如果有另一种方法,我很乐意从 string_agg 更改。