0

我有一个三列的表。(列_A、列_B、列_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

如何解决这个问题并获得预期的结果?

4

1 回答 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
于 2020-03-11T07:17:04.110 回答