mysql查询分组

时间:2011-03-16 04:06:15

标签: mysql sql aggregate-functions

我正在制作购物车。所选项目基于搜索查询存储在数据库中。

如果sku,type和color的值相同,我如何添加行数?

示例:

sku  type   color  quantity
---------------------------
1    type1  blue   5
1    type1  blue   2
2    type1  blue   5
1    type1  green  5

我的新行应该是:

sku  type   color  quantity
---------------------------
1    type1  blue   7
2    type1  blue   5
1    type1  green  5

请注意,第一行数量现为7。

如何做到这一点?我尝试了GROUP BY,但不知道如何使其动态匹配所有。

3 个答案:

答案 0 :(得分:2)

  SELECT sku,type,color, 
         SUM(quantity) 
    FROM table 
GROUP BY sku,type,color

答案 1 :(得分:1)

SELECT sku, type, color, sum(quantity)
FROM theTable
GROUP BY  sku, type, color

那就行了。

答案 2 :(得分:0)

CREATE TEMPORARY TABLE IF NOT EXISTS tmpTable LIKE dataTable

DELETE FROM tmpTable

Insert into tmpTable
select sku,type,color,sum(quantity) from dataTable
group by sku,type,color

DELETE FROM dataTable

INSERT INTO dataTable
SELECT * FROM tmpTable