Name type Age
-------------------------------
Vijay 1 23
Kumar 2 26
Anand 3 29
Raju 2 23
Babu 1 21
Muthu 3 27
--------------------------------------
编写一个查询,将每个类型中最大年龄的人的姓名更新为“HIGH”。
也请告诉我,为什么下面的查询不工作
update table1 set name='HIGH' having age = max(age) group by type;
9条答案
按热度按时间kdfy810k1#
我已经改变了Derek的脚本,它现在对我有效(MySQL):
pxyaymoc2#
你不能在update语句中直接使用group by。它看起来应该像这样:
bvn4nwqk3#
由于我查找了这个回复,发现它读起来有点混乱,我尝试确认以下查询 * 确实 * 有效,证实了Svetlana的高度赞同的原始帖子:
现在你知道了我也知道了
pkbketx94#
可以使用半联接:
您的查询将不起作用,因为您不能直接在按查询分组中比较聚合和列值。此外,您不能更新聚合。
scyqe7ek5#
试试这个
dsf9zpds6#
你可以使用下面的代码。
mum43rcc7#
hgqdbh6s8#
bfrts1fy9#
不能对Update语句使用GroupBy子句。在此期间必须使用子查询