【问题标题】:mysql query to get count of products along with quantitymysql查询以获取产品数量和数量
【发布时间】:2017-05-27 10:59:07
【问题描述】:
SELECT product,quantity,count(product) AS count 
  FROM order_table WHERE order_id in
   (select order_id from progress) 
group by product

使用这个查询我得到产品名称和产品数量。但是,我的表中也有数量列。因此,当产品获得 2 个数量时,如何使用上述查询将该数量与产品计数一起添加。

在上图中,一个汉堡产品有 3 个汉堡产品和 2 个数量,这里我需要显示类似产品:汉堡和总数量:4 稍后在下一行产品:披萨和总数量:3

【问题讨论】:

  • 删除group by product

标签: php mysql sql


【解决方案1】:

SELECT product,sum(quantity)as 'quantity',count(product) AS count FROM order_table WHERE order_id in (从进度中选择 order_id) 按产品分组

只是对数量使用聚合函数求和。

【讨论】:

    【解决方案2】:

    需要一些样本数据。输入数据和预期输出。 在此之前尝试一下这个查询 --

    SELECT Product
        ,SUM(Quantity) AS Total_Quantity
        ,COUNT(Product) AS Product_Count
    FROM order_table
    WHERE order_id IN (
            SELECT DISTINCT order_id
            FROM Progress
        )
    GROUP BY Product
    

    【讨论】:

    • 这只是一个基本的 GROUP BY。简而言之,如果您的 select 语句有一些不涉及某些聚合的列,例如 SUM、AVG、COUNT、MAX、MIN 功能,那么您应该在 GROUP BY 子句中提及这些列。在 WHERE 子句中,我刚刚选择了 DISTINCT,即 Progress 表中的唯一 Order_Id。不过不要忘记将其标记为答案。
    【解决方案3】:

    没有样本数据很难猜测,但看看你的问题,看起来你需要这样的东西

    SELECT product
     ,sum(quantity) as total_quantity
     ,count(*) AS count 
      FROM order_table 
     WHERE order_id in
       (select order_id from progress) 
    group by product
    

    【讨论】:

    • 我应该同时获得产品和数量结果
    • 更新您的问题。提供您的示例数据和预期的输出,并说明为什么这个查询没有给您。
    • 我得到了我需要的结果 'SELECT product,sum(quantity) as total_quantity,count(product) AS count FROM order_table WHERE order_id in (select order_id from progress) group by product
    • 但我不知道这个查询是如何工作的,请你解释一下
    • 当您按任何列分组时,您将只返回该列的 1 行。对于其他列,您必须执行任何聚合函数。所以count 将计算该组中的行数。 sum(quantity) 将添加该组中的所有数量。因此输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    相关资源
    最近更新 更多