首页 > 解决方案 > 如何正确分离此查询

问题描述

我正在尝试对我的表格进行排序以查找我的订单中的常见类别。进行此查询后

SELECT 
  ccd.cart_id, 
  mp.category_name, 
  ccd.quantity 
FROM 
  customer_orders co
  JOIN customer_cart_dtls ccd
    ON co.order_cart = ccd.cart_id
  JOIN merchant_products mp
    ON ccd.product_id = mp.product_id

产生这个结果

产生这个结果

所以从那个查询中购物车#2006........63 有 9 件商品。1 来自食物,3 来自水果,2 来自清洁,3 来自零食。除了第二个清洁条目有两个之外,所有这些都是数量 1。如何更改我的查询,以便我得到 10 个数量均为 1 的项目?

看起来像这样

在此处输入图像描述

标签: mysqlsql

解决方案


您是否试图通过将每个项目分成单独的行然后使用来计算每个类别有多少项目COUNT?如果是这样,我认为您不一定需要走那条路。SUM在 group by 之后简单地使用聚合函数可能会容易得多category_name。它可能看起来像这样:

SELECT mp.category_name, SUM(ccd.quantity)
FROM customer_orders AS co
JOIN customer_card_dtls AS ccd ON co.order_cart = ccd.cart_id
JOIN merchant_products AS mp ON ccd.product_id = mp.product_id
GROUP BY mp.category_name

如果您还想查看购物车 ID,只需将适当的列添加到您的SELECTGROUP BY语句中


推荐阅读