Big Query 按分组字段排序

RSH*_*HAP 5 group-by sql-order-by google-bigquery google-cloud-platform

我有一个按日期分组的查询,效果很好。

SELECT EXTRACT(date FROM DATETIME(timestamp, 'US/Eastern')) date, SUM(users) total_users FROM `mydataset.mytable` 
GROUP BY EXTRACT(date FROM DATETIME(timestamp, 'US/Eastern'))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试按日期订购时:

SELECT EXTRACT(date FROM DATETIME(timestamp, 'US/Eastern')) date, SUM(users) total_users FROM `mydataset.mytable` 
GROUP BY EXTRACT(date FROM DATETIME(timestamp, 'US/Eastern'))
ORDER BY EXTRACT(date FROM DATETIME(timestamp, 'US/Eastern'));
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SELECT list expression references column timestamp which is neither grouped nor aggregated at [1:35]
Run Code Online (Sandbox Code Playgroud)

时间戳列显然是 group by 的一部分,甚至更奇怪的是它在没有ORDER BY子句的情况下工作......这里发生了什么?

Mik*_*ant 6

#standardSQL
SELECT 
  EXTRACT(DATE FROM DATETIME(timestamp, 'US/Eastern')) date, 
  SUM(users) total_users 
FROM `mydataset.mytable` 
GROUP BY 1
ORDER BY 1 
Run Code Online (Sandbox Code Playgroud)