📜  mysql 显示类别一次计算多少产品 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.431000             🧑  作者: Mango

MySQL 显示类别一次计算多少产品

本文将介绍如何使用MySQL查询语句来显示每种产品类别中有多少个产品。我们将学习如何使用聚合函数COUNT()和GROUP BY子句以及JOIN子句来完成这项任务。

1. 创建测试表格

为了进行测试,我们将创建一个名为products的表格,并向其中添加样本数据。

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    category VARCHAR(50)
);

INSERT INTO products (name, category) VALUES
    ('Product A', 'Category 1'),
    ('Product B', 'Category 2'),
    ('Product C', 'Category 1'),
    ('Product D', 'Category 3'),
    ('Product E', 'Category 1'),
    ('Product F', 'Category 2'),
    ('Product G', 'Category 2'),
    ('Product H', 'Category 3'),
    ('Product I', 'Category 2'),
    ('Product J', 'Category 1');
2. 查询每个类别中的产品数量

为了查询每个类别中的产品数量,我们需要使用COUNT()聚合函数和GROUP BY子句。以下是我们的查询语句:

SELECT category, COUNT(*) AS total_products
FROM products
GROUP BY category;

这个查询语句将返回类别和该类别中产品的数量。我们使用COUNT(*)函数来计算每个类别中的产品数量,并使用GROUP BY子句按类别对数据进行分组。

查询结果如下:

| category | total_products | | ----------- | --------------| | Category 1 | 4 | | Category 2 | 4 | | Category 3 | 2 |

3. 连接其他表格获取更多信息

如果我们希望在结果中显示类别的名称而不是类别的编号,我们可以将products表格连接到categories表格,并使用JOIN子句获取类别的名称。

SELECT c.name AS category, COUNT(*) AS total_products
FROM products p
JOIN categories c ON p.category_id = c.id
GROUP BY c.name;

这个查询语句将返回类别名称和该类别中产品的数量。

查询结果如下:

| category | total_products | | ----------- | --------------| | Category 1 | 4 | | Category 2 | 4 | | Category 3 | 2 |

总结

本文介绍了如何使用MySQL查询语句显示每个类别中的产品数量,并了解了如何在查询中使用COUNT()和GROUP BY子句以及JOIN子句。此外,还演示了如何将结果与其他表格连接以获取更多信息。