簡體   English   中英

根據字段A中的名稱字段在字段B中用最大值標記行

[英]Flag the row with the max value in field B based on name field in Field A

我可以使用相同的名稱在給定的記錄集中找到具有值字段最大值的行

Select Name, Max(Value) from table group by Name, Value

這會返回給我具有最高價值的記錄,但我希望將其轉換為更新,以便我可以

  • 將記錄標記為IsMaxValue中的IsMaxValue
  • 對於“名稱”中的每個記錄,“值”組存儲在“ MaxValue”字段中找到的最大值

簡單選擇版本在這里:

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

如果可能的話,請使用上面准備更新的字段。

我相信此聲明可能是您想要的:

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;

示例SQL提琴

根據您的示例數據,更新后的表格如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM