如何在SQL中折叠相似的行

时间:2015-04-02 19:30:27

标签: sql oracle

让我们假设您有以下数据:

| COL 1 |  COl 2  | COL 3  |
| 10040 | [null]  | [null] |
| 10040 | [null]  |   Y    |
| 10040 |   Y     | [null] |
| 10070 | [null]  | [null] |
| 10070 |   Y     | [null] |

有没有办法使用纯SQL按“COL 1”进行分组并将数据折叠为:

| COL 1 |  COL 2  |  COL 3  |
| 10040 |    Y    |    Y    |
| 10070 |    Y    | [null]  |

提前致谢!

1 个答案:

答案 0 :(得分:3)

我不确定这是否是您所需要的,但您可以使用多种方式执行此操作,例如:

那时没有简化:

select col1, max(col2), max(col3)
  from table 
 group by col1;

如果您愿意,请发表评论,我将举例说明一个分析功能,例如排名。