sql 将一张纵向表变成横向表
时间: 2023-08-28 12:03:23 浏览: 68
在 SQL 中将一张纵向表转换成横向表,通常可以使用 PIVOT 操作来实现。假设我们有一个包含销售数据的表格 Sales:
```
Sales
-----------------------
| Product | SalesDate | SalesAmount |
-----------------------
| A | 2020-01-01 | 100 |
| A | 2020-01-02 | 150 |
| B | 2020-01-01 | 200 |
| B | 2020-01-02 | 250 |
-----------------------
```
现在我们想要将这个表格按照销售日期进行横向转换,得到以下结果:
```
Product | 2020-01-01 | 2020-01-02 |
-------------------------------
A | 100 | 150 |
B | 200 | 250 |
-------------------------------
```
可以使用以下 SQL 查询语句来实现:
```
SELECT Product,
[2020-01-01],
[2020-01-02]
FROM (SELECT Product, SalesDate, SalesAmount FROM Sales) AS S
PIVOT (
SUM(SalesAmount)
FOR SalesDate IN ([2020-01-01], [2020-01-02])
) AS P
```
其中,PIVOT 操作将 SalesDate 列转换成列名,同时对 SalesAmount 列进行聚合操作,这里使用了 SUM 函数。