由於樣本代碼中使用臨時表來更新表以下爲:
CREATE TEMPORARY TABLE Groups (Id INTEGER AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(31), GroupId VARCHAR(31), ValWithinGroup INTEGER);
INSERT INTO Groups VALUES (NULL, "Davy", "Boy", 2);
INSERT INTO Groups VALUES (NULL, "Mary", "Girl", 2);
INSERT INTO Groups VALUES (NULL, "Bill", "Boy", 5);
INSERT INTO Groups VALUES (NULL, "Jill", "Girl", -3);
INSERT INTO Groups VALUES (NULL, "Fred", "Boy", 3);
#查找最低值爲每組
CREATE TEMPORARY TABLE GroupSum AS SELECT GroupId, MIN(ValWithinGroup)
AS baseVal FROM Groups GROUP BY GroupId;
#創建一個索引,MySQL能有效地匹配
ALTER TABLE GroupSum ADD UNIQUE(的GroupId);
#最後,使基線調整
UPDATE Groups LEFT JOIN GroupSum USING (GroupId)
SET ValWithinGroup=ValWithinGroup-baseVal;
SELECT * FROM Groups;