gpt4 book ai didi

sql - SQL如何使用JOIN和GROUPBY显示MAX函数的匹配情况

转载 作者:行者123 更新时间:2023-12-02 20:29:16 25 4
gpt4 key购买 nike

我正在尝试在Hadoop服务器上使用SQL查询来提取数据。我有两个表:

11

a  | b | c 
10 143 a
23 163 g
24 536 r
55 475 a

t2
d  |  e |
143 bob
086 jim
536 jim
475 bob

我正在尝试根据共同的列t1.b = t2.d将t1与t2合并,然后将值按e(bob,jim等)分组,然后从中拉出a的最大值。 (jims的max(a)为24,bob的max(a)为55)。

到目前为止,我能够加入e并按e分组,但是由于GROUPBY函数正在寻找它,因此无法让b打印出来。它声明它不是一个聚合函数。我如何使它正常运行,以便能够查询和检索表示max(a),b和e的表。
SELECT max(a) as max_a, e
FROM (t1 left join t2 on t1.b=t2.d)
GROUP BY e

这满足了我的需要,但无法使b列显示而没有错误。

谢谢

最佳答案

我认为您不需要group by。我认为您想要窗口功能:

SELECT t.*
FROM (SELECT t1.*, t2.e,
row_number() over (partition by t2.e order by t1.a desc) as seqnum
FROM t1 left join
t2
on t1.b = t2.d
) t
WHERE seqnum = 1;

关于sql - SQL如何使用JOIN和GROUPBY显示MAX函数的匹配情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54448731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com