我的问题很少,我尝试查找但未找到所需的答案,
我的数据库中有两列,一个是a和b,请考虑“ A”具有ID,而“ B”具有颜色,现在我实现了一半,是当我尝试查找B列时ID重复例如
1 Black
1 Black
2 Blue
2 Blue
2 Blue
3 White
现在我想要的就是获取这些列,并在同一个查询中添加另外两个列,然后显示列“ A”及其颜色的反义;例如]
A B C
1 Black 1 Black
1 Black 2 Blue
2 Blue 3 White
2 Blue
2 Blue
3 White
有可能吗?
这是一件很奇怪的事情,但是您可以使用窗口功能:
select t.a, t.b, tg.a as c, tg.b as d
from (select a, b, row_number() over (order by a, b) as seqnum
from t
) t left join
(select a, b, row_number() over (order by a, b) as seqnum
from t
group by a, b
) tg
on t.seqnum = tg.seqnum;
Windows函数从MySQL 8.0开始可用