2017-05-27 31 views
-1
SELECT product,quantity,count(product) AS count 
    FROM order_table WHERE order_id in 
    (select order_id from progress) 
group by product 

使用此查询我收到产品名称和产品数量。但是,我的表中还有数量列。所以,当产品获得2数量时如何将这个数量与产品数量一起加上这个查询。mysql查询获得产品数量和数量

上述图像中有3种汉堡包产品以及用于一个汉堡包产品2量,在这里,我需要显示像产品:汉堡和总量:披萨和总量:3

+0

删除'通过product' –

回答

0
4中下一行产品后

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

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 
+0

组我应该得到双方的产品和组合 –

+0

更新你的问题的数量结果。给你的样本数据和预期的输出,并告诉为什么这个查询不给你。 – Utsav

+0

我得到的结果是我所需要的'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

的选择产品,SUM(数量)的“量”,计数(产品)AS计数 FROM order_table WHERE order_id在 (select order_id from progress) 按产品分组

只需在数量上使用聚合函数总和即可。

+0

谢谢....... –

1

需要一些示例数据。输入数据和预期输出。 至此尝试一下这个查询 -

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 
+0

是的,这对我有用 –

+0

你能解释它是如何工作的 –

+0

这只是一个基本的GROUP BY。简而言之,如果你的select语句有一些不涉及像SUM,AVG,COUNT,MAX,MIN等聚合的列,那么你应该在你的GROUP BY子句中提及这些列。 而在WHERE子句中,我刚从Progress表中选择了DISTINCT,即唯一的Order_Id。 不要忘了把它标记为答案。 –