您可以将某行分组为一列,但将其他列分开吗?

时间:2019-05-14 17:37:52

标签: mysql

我正在尝试过滤数据,但在Column1下遇到类似的行值。每行的Column2和Column3值不同。

| Column1 | Column2 | Column3
|---------|---------|--------
|    a    |    1    |    6
|    b    |    2    |    7
|    a    |    3    |    8
|    c    |    4    |    9
|    b    |    5    |    10

是否可以对Column1值进行分组,但将Column2和3分开? Column1的顺序无关紧要。

| Column1 | Column2 | Column3
|---------|---------|--------
|    a    |    1    |    6
|         |    3    |    8
|    c    |    4    |    9
|    b    |    2    |    7
|         |    5    |    10

1 个答案:

答案 0 :(得分:0)

此脚本可在mysql 8上运行

drop table if exists t;
create table t (col1 char(1), col2 int, col3 int);
insert into t values ('a',1,6);
insert into t values ('b',2,7);
insert into t values ('a',3,8);
insert into t values ('c',4,9);
insert into t values ('b',5,10);

select 
    case when col1_1 > 1 then '' else col1 end as col1
    ,col2
    ,col3
from
(
select 
    col1
    ,row_number() Over(partition by col1 order by col1) col1_1
    ,col2
    ,col3
from t
) x