我有一个包含三列的表。 (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
如何解决此问题并获得期望的结果?
[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