Google bigquery 获取BigQuery中按天分组的最大金额的唯一ID
我在BigQuery中有此查询:Google bigquery 获取BigQuery中按天分组的最大金额的唯一ID,google-bigquery,bigdata,Google Bigquery,Bigdata,我在BigQuery中有此查询: SELECT ID, max(amount) as money, STRFTIME_UTC_USEC(TIMESTAMP(time), '%j') as day FROM table GROUP BY day 控制台显示一个错误,因为它希望将ID添加到group by子句中,但如果我在group by中添加ID,它将获得特定日期的多个ID。 我想打印一个唯一的ID,该ID在特定的一天内具有最大数量 例如: ID: 1 Money:1
SELECT
ID,
max(amount) as money,
STRFTIME_UTC_USEC(TIMESTAMP(time), '%j') as day
FROM table
GROUP BY day
控制台显示一个错误,因为它希望将ID添加到group by子句中,但如果我在group by中添加ID,它将获得特定日期的多个ID。我想打印一个唯一的ID,该ID在特定的一天内具有最大数量 例如:
ID: 1 Money:123 Day:365
问题不清楚,但看起来您在特定的一天中,每个给定id只有一个条目。假设这样,下面的查询满足您的需要
SELECT id, amount, day
FROM (
SELECT
id, amount, day,
ROW_NUMBER() OVER(PARTITION BY day ORDER BY amount DESC) AS win
FROM dataset.table
)
WHERE win = 1
如果上述假设是错误的(因此同一天同一id有多个条目),请使用下面的
SELECT id, amount, day
FROM (
SELECT id, amount, day,
ROW_NUMBER() OVER(PARTITION BY day ORDER BY amount DESC) AS win
FROM (
SELECT id, SUM(amount) AS amount, day
FROM dataset.table
GROUP BY id, day
)
)
WHERE win = 1
重要的是,
阅读别人对你问题的答案后,你应该做的第一件事就是对答案进行投票,就像其他任何用户(有足够声誉的)一样。投票选出对你有帮助的答案
,并接受你认为对你最有帮助的答案。还有更多。。。当有人回答你的问题时,你可以检查一下该做什么,然后