繁体   English   中英

SQL 合并两行ID相同但列值不同的行

[英]SQL Merge two rows with same ID but different column values

当它们具有相同的 id 但不同的列值时,我试图将它们合并为一个。

    (table1)

    id       colour

    1        red
    1        blue
    2        green
    2        red

我希望将其结合起来,以便结果是:

    id     colour1    colour2

    1      red        blue
    2      green      red

colors的数量没有限制。 它的范围取决于 id。

任何帮助,将不胜感激。 提前致谢。

这适用于您的具体示例

select left(colours,locate(',',colours)-1) as colour1, right(colours, length(colours)- locate(',',colours)) as colour2 from (select id, group_concat(colour) as colours from table1 group by id) concatenation

不是很一般或健壮。

如果一组值(颜色)是固定的,我更喜欢 pivot 像这样:

select id, sum(RED) as RED, sum(GREEN) as GREEN, sum(BLUE) as BLUE from (select id, colour='red' as RED, colour='green' as GREEN, colour='blue' as BLUE from table1) coded group by id;

但这不是您要求的 output 格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM