我想在我管理的數據庫的表中重新分配一些值。mysql:使用重複主鍵添加整數值
Firstname(varchar), Lastname(varchar), Date(date), Icecream_consumed(int)
其中Firstname,Lastname和Date的組合構成此表的主鍵。更改此表的結構不是一種選擇。
在數據庫中共有80個名字和姓氏的獨特組合,但我想將該數字降至5,並將總冰淇淋消耗量較小的一些記錄添加到總數最多的記錄中。因此,只有前5名的FirstName和LastName組合具有所有Icecream_consumed計數。
例如,如果我執行查詢:
SELECT Firstname, Lastname, SUM(Icecream_consumed)
FROM table_name
GROUP BY Firstname, Lastname
ORDER BY SUM(Icecream_consumed);
我希望它只有5個結果,而不是80我怎樣才能修改表中的記錄來反映,而無需手動更新每個記錄?一個簡單的更新將不起作用,因爲它將插入具有相同主鍵的現有記錄存在的地方。
編輯:我注意到列ID是一種模糊。所以我從這個例子中刪除了它。
EDIT2:下面是一個例子:
現有:
名字,姓氏,SUM(Icecream_consumed)
John Doe 1500
Joe Doe 1400
Alex Foo 1111
John Foo 1000
Ben Foo 999
Sue Cool 500
Bill Smith 200
Ben Smith 150
我想改變表,以便總和(icecream_consumed )與sue,cool,bill smith和ben smith相關的值與john doe相關聯,因此只有5個結果可見。但是,如果我嘗試更新所有記錄,以便將sue cool改爲john doe,則會與主鍵發生衝突,因爲它們都可能具有相同日期的icecream_consumed值。 結果可能類似於:
John Doe 2000
Joe Doe 1600
Alex Foo 1261
John Foo 1000
Ben Foo 999
你想修改記錄(以獲得'SUM'更新)而不修改它們(保持相同的主鍵)?如果沒有,「當前」與「想要」的一個小例子將有助於更好地理解你想要達到的目標。 – alfasin
聽起來像是一個'插入到x選擇......從...重複密鑰更新消耗=消耗+ y'的工作 –
傑克你能以上面給出的例子的形式給出你的答案嗎?我正在研究「重複鍵」這個詞組,並且您提供的內容似乎會添加值,但我也需要消除較小的記錄,因此我們保持相同的總數並且不僅僅是從無處添加新的數字。 –