如何使用group by, distinct和sum


How to use group by, distinct and sum?

我有一个表格:temp_shoppingcart .

在temp_shoppingcart中,我有temp_shoppingcart_id, user_id, product_id, quantity和color。任何时候,当用户在购物车中添加商品时,它都会添加一个新行来存储数据。

因此数据将具有类似user_id: 1, product_id: 123, quantity: 1, color: black的内容。如果用户再次添加相同的项,它将作为新行输入相同的数据。所以会有两次相同的行

我如何显示数据,使相同的产品将被组在一起显示为同一行,但数量是2行的总和?

这实际上是一个非常基本的查询概念。也许你可以看一些MySQL教程,多学一点。像这样:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

无论如何

下面的查询

选择product_id,总和(数量),GROUP_CONCAT(颜色)
从表
GROUP BY product_id

将显示带有总和数量的行。例如,如果两个条目的"color"字段都是红色,则GROUP_CONCAT(color)将显示"red,red"。

如果你也想按颜色对项目进行分组,我建议使用下面的查询。

选择user_id product_id、颜色(数量)和
从temp_shoppingcart
GROUP BY user_id, product_id,color

如果你不想按颜色分组

选择user_id、product_id GROUP_CONCAT(颜色),(数量)和
从temp_shoppingcart
GROUP BY user_id, product_id