从两个表中获取MAX值

时间:2018-11-28 04:05:30

标签: postgresql

使用,我有两个表(用户和live_user_data),它们具有唯一的ID,可以在两个表之间进行联接,两个表都有用户ID,但是一个表具有用户级别(空值和1到50)。

live_user_data包含记录用户级别的每个实例,因此它包含成千上万个实例,因此,当执行简单的联接查询时,我将获得每个用户的每个级别的结果。我想要得到的结果仅显示所有用户的列表,并列出其user_level的最大值。

表:用户

id  system_id user_id
1 001 John Smith
2 002 Jacob Smith
3 001 John Smith
4 003 Steve Smith
5 002 Jacob Smith

表:live_user_data

system_id level
002 1
002 7
001 10
003 4
002 15

1 个答案:

答案 0 :(得分:3)

您需要连接两个表并使用Group By构造

SELECT users.id, users.systemid, MAX(live_user_data.level)
FROM   users
           LEFT OUTER JOIN live_user_data
              ON users.system_id = live_user_data.system_id
GROUP BY users.id, users.systemid