2014-02-08 42 views
1


我現在的表看起來像這樣:SQL,與同類型總和值加列

ID TYPE QUANTITY 
1 A1  3 
2 B1  2 
3 A1  2 
4 B1  8 

,做查詢後,我想的是:

ID TYPE QUANTITY SUM 
1 A1  3   5 
2 B1  2   10 
3 A1  2   5 
4 B1  8   10 

之列由相同類型的項目的總計數量組成。

+0

你有問題嗎? – Strawberry

回答

0
SELECT t.ID,t.TYPE,t.QUANTITY,x.SUM FROM TABLE t LEFT JOIN 
(SELECT ID,TYPE,QUANTITY,SUM(QUANTITY) AS SUM FROM TABLE GROUP BY TYPE)x 
ON t.type=x.type 

SQL Fiddle

+0

謝謝大家,每個解決方案都很棒,雖然它們非常相似。對不起,我不能添加你的積分,因爲我的代表低;) – Jarek

0

我沒有嘗試過的查詢,但看到如果你這樣做會發生什麼:

SELECT 
    ID, 
    myTable.TYPE, 
    QUANTITY, 
    aaa.summy 
FROM myTable 
JOIN 
(
    SELECT 
    TYPE, 
    SUM(QUANTITY) summy 
    FROM myTable 
    GROUP BY TYPE 
) aaa 
ON aaa.TYPE = myTable.TYPE 
+0

哦,那麼近。 – Strawberry

+0

@Strawberry我創建了表來測試查詢。我現在已經更新:) – James

2

我的做法是使用派生表,按類型第一聚集的數量,然後加入這個結果與原數據:

select 
    t.id, 
    t.type, 
    t.quantity, 
    tmp.overall 

from 
    table t join (
     select 
      table.type, 
      sum(table.quantity) as overall 

     from 
      table 

     group by 
      table.type 
    ) tmp on t.type = tmp.type