2012-09-18 44 views
0

是否可以在單個原子查詢中執行以下行?是否可以在MySQL表上執行內聯GROUP BY?

CREATE TABLE tmp AS 
(
    SELECT fooId, SUM(amount) AS amount 
    FROM foo 
    GROUP BY fooId 
); 
TRUNCATE TABLE foo; 
INSERT INTO foo (SELECT fooId, amount FROM tmp); 
DROP TABLE tmp; 

回答

1

我想你想更新表中的總數?嘗試

REPLACE INTO foo (fooID, amount) 
SELECT fooID, sum(Amount) FROM foo 
+0

對不起,我不得不不接受你的答案。 MySQL文檔聲明:''目前,你不能替換成一個表並從子查詢中的同一個表中選擇。「'和:'」請注意,除非表具有PRIMARY KEY或UNIQUE索引,否則使用REPLACE語句沒有任何意義「'而且重點是將多個富人分組,所以我不能擁有一個PK。 – Ben