0

group-idと の組み合わせとして を表に記入する必要があるという要件がありitem-idますauto-id。表は次のとおりです。

----------------------------------------
Item_id  |  Auto_id  |  Group_id
----------------------------------------
1        |  1        |  1 
1        |  2        |  1
2        |  3        |  3
2        |  4        |  3
3        |  5        |  5
3        |  6        |  5
3        |  7        |  5
4        |  8        |  8
4        |  9        |  8
5        |  10       |  10
6        |  11       |  11

と の 2 つの列はすでに入力されているため、入力する必要がありItem_idます。関係は、繰り返しごとにのようになります。最小値はです。Auto_idgroup_iditem_idgroup_idauto_id

私はそれを明確にすることを願っています。可能であれば、助けてください。

ありがとう、アシッシュ

4

1 に答える 1

3

サブクエリを group by と共に使用して、各 item_id の最小 auto_id を計算できます。次に、このサブクエリを元のテーブルに結合できます。

SELECT t1.Item_id, t1.Auto_id, t2.Group_id
FROM
  yourtable t1 INNER JOIN (
    SELECT Item_Id, MIN(Auto_id) Group_id
    FROM yourtable
    GROUP BY Item_Id) t2
  ON t1.Item_Id=t2.ItemId

ここでフィドルを参照してください。

既存の列を更新する必要がある場合は、次の UPDATE クエリを使用できます。

UPDATE
  yourtable t1 INNER JOIN (
    SELECT Item_Id, MIN(Auto_id) Group_id
    FROM yourtable
    GROUP BY Item_id) t2
  ON t1.Item_Id=t2.Item_Id
SET
  t1.Group_id=t2.Group_id

フィドルはこちらです。

于 2013-07-29T07:57:26.607 に答える