如何在Bigquery的一个select语句中使用两个group by语句?

问题描述 投票:0回答:1

我有一个包含三列的表。 (Column_A,Column_B,Column_C)

并且表中的数据具有以下结构如下:

Column_A  |  Column_B  |  Column_C
----------------------------------
  Jeeva   |  football  |   1
  Jeeva   |  football  |   2
  Jeeva   |  football  |   3
  Jeeva   |  handball  |   5
  Jeeva   |  handball  |   1
  Jeeva   |  handball  |   7
  Jeeva   |  handball  |   2
  Jeeva   |  voleyball |   1
  Jeeva   |  voleyball |   2
 Bharathi |  voleyball |   10
 Bharathi |  voleyball |   7
 Bharathi |  voleyball |   2

我想要以下结果:

Column_A  |  Column_B  |  Column_C
----------------------------------
  Jeeva   |  football  |   3
  Jeeva   |  handball  |   7
  Jeeva   |  voleyball |   2
 Bharathi |  voleyball |   10      

所需结果:在Column_B中为用户在Column_A中玩过的每个运动在Column_C中找到最高得分值

我在Bigquery中如下编写查询,

SELECT DISTINCT a.* FROM `project.dataset.individual_results` a 
RIGHT JOIN
(SELECT column_a, column_b, MAX(column_c) AS max_val FROM `project.dataset.individual_results` GROUP BY column_a GROUP BY column_b) b 
ON a.column_a = b.column_a AND a.column_b= b.max_val WHERE a.column_c IS NOT NULL

由于第二个Group By语句,我得到了一个错误。

错误消息:

Syntax error: Expected ")" but got keyword GROUP

如何解决此问题并获得期望的结果?

google-bigquery
1个回答
1
投票

[GROUP BY column_a GROUP BY column_b-应该只是GROUP BY column_a, column_b

但是我也认为您根本不需要JOIN,第二个子查询为您提供了您描述的确切结果:

SELECT column_a, column_b, MAX(column_c) AS max_val 
FROM `project.dataset.individual_results` 
GROUP BY column_a, column_b
© www.soinside.com 2019 - 2024. All rights reserved.