根据字段A中的名称字段标记字段B中具有最大值的行

时间:2015-10-06 21:51:44

标签: mysql max

我可以使用

找到具有相同名称的给定记录集中值字段的最大值的行
Select Name, Max(Value) from table group by Name, Value

它返回给我最高值的记录,但我希望将其转换为更新,以便我可以

  • 标记IsMaxValue
  • 中值最高的记录
  • 对于“名称”中的每条记录,“值组”存储“MaxValue”字段中找到的最高值

简单的选择版本在这里:

http://sqlfiddle.com/#!9/ccd32/5

如果可能的话,可以按照上面的字段准备好更新。

1 个答案:

答案 0 :(得分:0)

我相信这句话是你可能正在寻找的:

update maxvalues
join (
  Select Color, Max(`Value`) max_value 
  from MaxValues 
  group by Color
) a on maxvalues.color = a.color and value = a.max_value
set ismaxrecord = '1', maxrecordid = a.max_value;

Sample SQL Fiddle

根据您的样本数据,更新后的表格如下所示:

|  Color | Value | IsMaxRecord | MaxRecordID |
|--------|-------|-------------|-------------|
| Orange |     1 |             |           0 |
| Orange |     2 |             |           0 |
| Orange |     3 |           1 |           3 |
|  Black |    30 |           1 |          30 |
|  Black |    20 |             |           0 |
|  Black |    10 |             |           0 |