如何将2个SQL查询组合成一个结果?

时间:2016-06-21 10:53:42

标签: sql oracle

我最近开始使用SQL并有一个问题。

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

SELECT
  COUNT(*)
FROM
  products;

我的第二个查询输出缺货产品

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

我想计算出缺货产品的百分比。

为此我使用这个公式:

percentage = out_of_stock_products * 100 / all_products

我已经尝试过这个,但这不起作用

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

3 个答案:

答案 0 :(得分:4)

试试这个:

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

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

答案 1 :(得分:0)

试试这个;)

SELECT
  SUM(IF(qty = 0, 1, 0)) * 100 / SUM(1) AS per
FROM
  products;

答案 2 :(得分:0)

SELECT SUM(CASE WHEN qty = 0 THEN 1 ELSE 0 END) * 100.0 / COUNT(*) as percent
FROM products;
相关问题