如何在grouping by子句中选择主键,它将从另一个不在group by子句中的表中返回最大值?例如:
表A:
ID table_b_id Value
1 1 100
2 1 200
3 1 150
4 2 300
5 2 200
6 2 100
7 3 100
8 3 200
表B
ID Name
1 A
2 B
3 C
结果预期
B.ID B.Name A.ID 1 A 2 2 B 4 3 C 8
我尝试过这样的问题:
select b.id, max(b.name), max(a.id) as kd_rec
from table_a a join table_b
on a.table_b_id = b.id
group by b.id
我不知道如何通过b从表格中获取最大值。
答案 0 :(得分:1)
如果您不希望来自Name
的{{1}},那么
<强>查询强>
tableB
如果您希望结果集中也;with cte as
(
select rn=row_number() over
(
partition by table_b_id
order by [Value] desc
),*
from tableA
)
select table_b_id as [B.ID],
ID as [A.ID]
from cte
where rn=1;
,那么
<强>查询强>
Name