Name type Age
-------------------------------
Vijay 1 23
Kumar 2 26
Anand 3 29
Raju 2 23
Babu 1 21
Muthu 3 27
--------------------------------------
Run Code Online (Sandbox Code Playgroud)
编写查询以将每种类型的最大年龄人名更新为"HIGH".
还请告诉我,为什么以下查询无效
update table1 set name='HIGH' having age = max(age) group by type;
Run Code Online (Sandbox Code Playgroud)
Sve*_*ana 78
我已经改变了Derek的脚本,现在它适用于我:
UPDATE table1 AS t
INNER JOIN
(SELECT type,max(age) mage FROM table1 GROUP BY type) t1
ON t.type = t1.type AND t.age = t1.mage
SET name='HIGH'
Run Code Online (Sandbox Code Playgroud)
您不能直接在更新语句中使用group by.它必须看起来更像这样:
update t
set name='HIGH'
from table1 t
inner join (select type,max(age) mage from table1 group by type) t1
on t.type = t1.type and t.age = t1.mage;
Run Code Online (Sandbox Code Playgroud)