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

这两列将已经填充,即Item_idand Auto_id,我们需要填充group_id。这种关系就像对于每个重复item_idgroup_id将是最小值auto_id

我希望我说清楚。如果可能,请提供帮助。

谢谢,阿希什

4

1 回答 1

3

您可以使用带有分组依据的子查询,您可以在其中计算每个 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 回答