横向case when
时间: 2023-09-07 21:17:21 浏览: 33
横向的 CASE WHEN 语句是指在查询结果中使用多个 CASE WHEN 语句,每个语句对应一个不同的条件,并将它们放在横向的列中显示。这种查询通常被称为“交叉表”或“透视表”。以下是一个使用横向 CASE WHEN 语句的示例:
假设我们有一个订单表,其中包含订单的数量和订单的状态。我们想要创建一个透视表,显示每个订单状态的数量。我们可以使用以下查询:
```
SELECT
SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) AS pending,
SUM(CASE WHEN status = 'approved' THEN 1 ELSE 0 END) AS approved,
SUM(CASE WHEN status = 'shipped' THEN 1 ELSE 0 END) AS shipped,
SUM(CASE WHEN status = 'delivered' THEN 1 ELSE 0 END) AS delivered
FROM orders;
```
这将返回一个结果集,其中每个订单状态都是一个列,并显示该状态的订单数量。在这个例子中,我们使用了四个 CASE WHEN 语句,每个语句对应一个不同的订单状态,并将它们放在横向的列中显示。
相关问题
mysql 分组查询 横向
要在 MySQL 中进行分组查询并按横向显示结果,您可以使用 CASE 表达式和条件聚合函数。以下是一个示例查询,演示如何实现横向分组查询:
```sql
SELECT
category,
SUM(CASE WHEN year = 2021 THEN sales END) AS sales_2021,
SUM(CASE WHEN year = 2022 THEN sales END) AS sales_2022
FROM
your_table
GROUP BY
category;
```
在上述查询中,您需要将 `your_table` 替换为实际的表名,并根据您的数据结构做相应的调整。查询将按 `category` 列进行分组,并使用条件聚合函数 `SUM` 和 CASE 表达式来计算每个类别在 2021 年和 2022 年的销售总额。结果将包含 `category`、`sales_2021` 和 `sales_2022` 列。
请根据您的实际需求调整查询,并确保表名、列名和条件与您的数据库相匹配。希望对您有所帮助!
sql中横向数据汇总
在 SQL 中,横向数据汇总可以使用 `CASE` 和 `SUM` 函数实现。假设有一个 `sales` 表,其中包含以下字段:`product`、`region` 和 `amount`。要对不同地区的销售额进行横向汇总,可以使用以下 SQL 语句:
```sql
SELECT product,
SUM(CASE WHEN region = 'North' THEN amount ELSE 0 END) AS North,
SUM(CASE WHEN region = 'South' THEN amount ELSE 0 END) AS South,
SUM(CASE WHEN region = 'East' THEN amount ELSE 0 END) AS East,
SUM(CASE WHEN region = 'West' THEN amount ELSE 0 END) AS West
FROM sales
GROUP BY product;
```
在这个例子中,`CASE` 函数根据地区将销售额进行分类,然后 `SUM` 函数将各个地区的销售额进行求和。最后,使用 `GROUP BY` 对产品进行分组,以便在每个产品的行中显示各个地区的销售额。