我有两张桌子,我需要找到价值最高的人。
TABLE1
NAME ID --------------- --------------- MIKE 101 MIKE 102 BETTY 103 BETTY 104 BETTY 105 TIM 106
TABLE2
ID VALUE -------- -------------- 101 12 102 10 103 20 104 20 105 10 106 5
我可以写一个select语句,它会给出名称和值的结果:
SELECT name, value FROM table1, table2 WHERE table1.id = table.id;
NAME VALUE
----- ----------
MIKE 12
MIKE 10
BETTY 20
BETTY 20
BETTY 10
TIM 5
现在我需要聚合具有相同名称的行的值,我无法弄明白。我会以正确的方式去做吗?
答案 0 :(得分:2)
请试试这个:
select a.name,max(b.value) as value
from table1 a
inner join table2 b on a.id = b.id
group by a.name
无论如何,你在问题中标记了mysql和oracle。幸运的是,这个sql兼具。但是你必须删除这两个标签中的一个,以确保你使用哪个dbms。
答案 1 :(得分:1)
使用此..由于您的列名称是唯一的,因此您不需要任何别名。
select name, max(value) as MaxValue
from table1
inner join table2 on table1.id = table2.id
group by name