纵表 变横标 则呢么写sql
时间: 2024-09-06 18:06:03 浏览: 27
"纵表变横标"通常是指将数据从长条形(纵向)表格转换成宽格式(横向),也就是将原来一条记录对应一列变成一列对应多行。在SQL中,这可以通过PIVOT操作来实现,假设你有一个名为`sales_data`的表,其中包含`product`, `date`, `quantity_sold`等字段,想按产品和日期组合生成新的宽格式表,可以这样做:
原始数据:
```sql
| product | date | quantity_sold |
|---------|------------|---------------|
| A | 2022-01-01 | 100 |
| B | 2022-01-01 | 50 |
| A | 2022-01-02 | 150 |
| B | 2022-01-02 | 75 |
```
要变成横置(产品在列,日期在行,销售量作为值):
```sql
CREATE TABLE pivoted_sales (
Product varchar(10),
[2022-01-01] int,
[2022-01-02] int
);
INSERT INTO pivoted_sales
SELECT product, quantity_sold
FROM sales_data
PIVOT (
SUM(quantity_sold)
FOR date IN ([2022-01-01], [2022-01-02])
);
```
这会生成新表,结果如下:
```sql
| Product | [2022-01-01] | [2022-01-02] |
|---------|-------------|-------------|
| A | 100 | 150 |
| B | 50 | 75 |
```
阅读全文