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

时间:2019-10-22 14:44:20

标签: mysql mariadb

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

    (table1)

    id       colour

    1        red
    1        blue
    2        green
    2        red

我希望将其结合起来,这样结果是:

    id     colour1    colour2

    1      red        blue
    2      green      red

颜色数量没有限制。它的范围取决于ID。

任何帮助将不胜感激!预先感谢。

1 个答案:

答案 0 :(得分:0)

这将适用于您的特定示例

let arr = [ { quantity: 1, price: 30 }, { quantity: 1, price: 40 }, { quantity: 2, price: 10 }, { quantity: 1, price: 10 } ] let reducer = (acc, cur) => { return acc + (Number(cur.quantity) * Number(cur.price)); }; console.log(arr.reduce(reducer, 0)); // 100

不太笼统或不健全。

如果一组值(颜色)是固定的,则我希望将其设置为这样:

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

但这不是您要求的输出格式。