如何将两个 SQL 查询合并为一个结果?

3

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

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

SELECT
  COUNT(*)
FROM
  products;

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

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

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

为了做到这一点,我使用以下公式:

百分比 = 缺货产品数 * 100 / 所有产品数

我尝试使用它,但它没有起作用。

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

MySQL还是Oracle?请勿标记未涉及的产品。 - jarlh
@jarlh 我使用Oracle SQL Developer。 - minz
3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
4

试试这个:

SELECT COUNT(CASE WHEN qty = 0 THEN 1 END) * 100.0 / COUNT(*)
FROM products
上述查询使用条件聚合来计算缺货产品的数量。

谢谢您的回答,但这对我不起作用。抱歉,我的错,我标记了 mysql 但我使用的是 oracle。 - 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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,