SQL SELECT查询中使用CASE条件和SUM()

SQL SELECT查询中使用CASE条件和SUM()

在本文中,我们将介绍如何在SQL SELECT查询中使用CASE条件和SUM()函数。SQL是结构化查询语言,用于在关系数据库中进行数据查询和操作。使用CASE条件和SUM()函数,我们可以根据不同的条件计算和汇总数据。

阅读更多:SQL 教程

什么是CASE条件和SUM()函数

CASE条件是用于根据条件选择不同的值或执行不同的操作的表达式。它类似于其他编程语言中的if-else语句。在SQL中,CASE条件可以放在SELECT语句中,用于根据条件返回不同的结果。

SUM()函数是用于计算指定列的合计值的聚合函数。它将指定列中的所有值相加,并返回一个总和值。

使用CASE条件和SUM()函数的示例

我们将通过一个示例来演示如何在SQL SELECT查询中使用CASE条件和SUM()函数。

假设我们有一个名为”orders”的表,包含以下列:订单ID、客户ID、订单日期、订单金额和支付状态。我们想要根据订单支付状态计算已支付和未支付订单的总金额。

首先,我们创建一个名为”orders”的表,并插入一些示例数据:

CREATE TABLE orders (
  order_id INT,
  customer_id INT,
  order_date DATE,
  order_amount DECIMAL(10,2),
  payment_status VARCHAR(10)
);

INSERT INTO orders VALUES (1, 1001, '2021-01-01', 100.00, 'Paid');
INSERT INTO orders VALUES (2, 1002, '2021-01-02', 200.00, 'Paid');
INSERT INTO orders VALUES (3, 1003, '2021-01-03', 150.00, 'Unpaid');
INSERT INTO orders VALUES (4, 1004, '2021-01-04', 300.00, 'Unpaid');
INSERT INTO orders VALUES (5, 1005, '2021-01-05', 250.00, 'Paid');
SQL

现在,我们可以使用CASE条件和SUM()函数来计算已支付和未支付订单的总金额:

SELECT 
  SUM(CASE WHEN payment_status = 'Paid' THEN order_amount ELSE 0 END) AS paid_amount,
  SUM(CASE WHEN payment_status = 'Unpaid' THEN order_amount ELSE 0 END) AS unpaid_amount
FROM orders;
SQL

在上面的示例中,我们使用了两个CASE条件,分别计算已支付订单和未支付订单的总金额。在每个CASE条件的THEN子句中,如果条件满足,则将订单金额添加到总金额中,否则添加零。

运行上述查询,我们将得到以下结果:

paid_amount | unpaid_amount
------------+--------------
      550.00 |        450.00
SQL

结果显示,已支付订单的总金额为550.00,未支付订单的总金额为450.00。

总结

在本文中,我们了解了如何在SQL SELECT查询中使用CASE条件和SUM()函数来计算和汇总数据。CASE条件允许我们根据不同的条件选择不同的结果,而SUM()函数用于计算指定列的合计值。通过结合使用这两个功能,我们可以根据特定条件计算和汇总数据,从而满足不同的业务需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册