2013-07-29 64 views
0

需要填寫group-id作爲item-idauto-id的組合。表格如下:對組數據的SQL查詢

---------------------------------------- 
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_idAuto_id,我們需要填寫group_id。這種關係就像每個重複的item_idgroup_id將是最低的auto_id

我希望我說清楚。如果可能的話請幫忙。

感謝, 阿希什

+2

第3行和第4行不應該是Group_id = 3嗎? (其中Item_id = 2) –

+0

是Nenad。糾正。謝謝。 – Ashish

回答

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 

請參閱小提琴here

如果您需要更新現有列,您可以使用此更新查詢:

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 

小提琴是here

+0

非常感謝fthiella ......工作絕對正常...... – Ashish