Google bigquery 获取BigQuery中按天分组的最大金额的唯一ID

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

我在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: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

重要的是,
阅读别人对你问题的答案后,你应该做的第一件事就是对答案进行投票,就像其他任何用户(有足够声誉的)一样。投票选出对你有帮助的答案
,并接受你认为对你最有帮助的答案。还有更多。。。当有人回答你的问题时,你可以检查一下该做什么,然后