SQL CASE WHEN 判断不同值时累加另一个值

SQL CASE WHEN 判断不同值时累加另一个值

在本文中,我们将介绍如何使用 SQL 的 CASE WHEN 语句在满足特定条件时累加另一个值。这种情况通常需要在某个字段满足某种条件时,对另一个字段进行求和操作。下面我们将通过示例来说明如何实现这一需求。

阅读更多:SQL 教程

示例数据

为了方便演示,我们首先创建一个名为 “orders” 的表,其中包含订单和销售数据。

CREATE TABLE orders (
    order_id INT,
    product_name VARCHAR(50),
    unit_price DECIMAL(10, 2),
    quantity INT
);

INSERT INTO orders (order_id, product_name, unit_price, quantity)
VALUES
    (1, 'A', 10.00, 2),
    (2, 'B', 15.00, 3),
    (3, 'C', 20.00, 1),
    (4, 'A', 10.00, 1),
    (5, 'B', 15.00, 2),
    (6, 'C', 20.00, 1),
    (7, 'A', 10.00, 3),
    (8, 'B', 15.00, 1),
    (9, 'C', 20.00, 2);
SQL

该表包含四个字段:订单编号(order_id),产品名称(product_name),单价(unit_price),数量(quantity)。

通过 CASE WHEN 判断不同值并累加另一个值

首先,我们来看一个简单的例子。假设我们要查询表中产品为 “A” 的订单总数,并以 “product_A_total” 作为结果列名。我们可以使用如下 SQL 查询语句:

SELECT
    SUM(CASE WHEN product_name = 'A' THEN quantity END) AS product_A_total
FROM
    orders;
SQL

执行上述查询后,我们将会得到结果:product_A_total = 6。原因是表中共有三个产品为 “A” 的订单,其数量分别为 2、1、3,所以结果为 2 + 1 + 3 = 6。

类似地,我们可以使用 CASE WHEN 语句处理其他条件并累加另一个值。例如,我们要查询出表中不同产品的总销售额,可以使用如下 SQL 查询语句:

SELECT
    product_name,
    SUM(unit_price * quantity) AS total_sales
FROM
    orders
GROUP BY
    product_name;
SQL

执行上述查询后,我们将会得到结果:

| product_name | total_sales |
|--------------|-------------|
| A            | 70.00       |
| B            | 60.00       |
| C            | 60.00       |
SQL

该结果展示了不同产品的总销售额,计算方式是单价乘以对应数量,并按产品分组。

总结

本文介绍了如何使用 SQL 的 CASE WHEN 语句在满足特定条件时累加另一个值。我们通过具体示例演示了如何查询特定产品的订单总数和不同产品的总销售额。通过灵活运用 CASE WHEN 语句,我们可以方便地实现这些需求。希望本文对你在 SQL 中进行条件判断并进行累加操作时有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册