2016-06-21 232 views
3

我最近开始使用SQL并有一个问题。如何将2个SQL查询合并为一个结果?

我的第一个查询输出所有产品

SELECT 
    COUNT(*) 
FROM 
    products; 

我的第二个查询输出脱销产品的

SELECT 
    COUNT(*) 
FROM 
    products 
WHERE 
    qty = 0; 

我想计算缺货什么样的产品的比例。

为了这个我用这个公式:

百分比= out_of_stock_products * 100/ALL_PRODUCTS

我这个尝试过,但是这并不工作

SELECT 
    (
    SELECT 
    COUNT(*) 
    FROM 
    products 
    WHERE 
    qty = 0; 
) * 100/COUNT(*) 
FROM 
    products; 
+0

的MySQL或Oracle?不要标记不涉及的产品。 – jarlh

+0

@jarlh我使用Oracle SQL Developer – minz

回答

4

试试这个:

SELECT COUNT(CASE WHEN qty = 0 THEN 1 END) * 100.0/COUNT(*) 
FROM products 

以上查询使用条件汇总以计算缺货产品的数量。

+0

感谢您的回答,但这对我无效。对不起,我不好,我标记的MySQL,但我使用oracle – minz

+0

哦,谢谢你的作品。 – minz

0

试试这个;)

SELECT 
    SUM(IF(qty = 0, 1, 0)) * 100/SUM(1) AS per 
FROM 
    products; 
0
SELECT SUM(CASE WHEN qty = 0 THEN 1 ELSE 0 END) * 100.0/COUNT(*) as percent 
FROM products;