我试图搜索帖子。但我找不到它
我有这样的表:
+--------+----------+-----------+ | id | data1 | data2 | +--------+----------+-----------+ | A123 | A | 315 | +--------+----------+-----------+ | A123 | A | 332 | +--------+----------+-----------+ | A123 | A | 220 | +--------+----------+-----------+ | C234 | B | 356 | +--------+----------+-----------+ | C234 | B | 224 | +--------+----------+-----------+ | C234 | B | 114 | +--------+----------+-----------+
我发现这样:
+--------+----------+-----------+-----------+ | id | data1 | newdata | +--------+----------+-----------+-----------+ | A123 | A | 315,332,220 | +--------+----------+-----------+-----------+ | C234 | B | 356,224,114 | +--------+----------+-----------+-----------+
如何查询数据库:
+--------+----------+-----------+-----------+-----------+ | id | data1 | newdata1 | newdata2 | newdata3 | +--------+----------+-----------+-----------+-----------+ | A123 | A | 315 | 332 | 220 | +--------+----------+-----------+-----------+-----------+ | C234 | B | 356 | 224 | 114 | +--------+----------+-----------+-----------+-----------+
我只有3个新数据(newdata1,newdata2,newdata3),不再有
由于
答案 0 :(得分:0)
您正在寻找的内容通常称为“水平旋转”,其中多个值属于表中的公共标识符,具有行的最大修订数 n 每个标识符,水平地从“垂直”旋转到n列。
我前几天刚回答了一个非常相似的问题。
您将看到它基于公共标识符的GROUP BY,并且在测量的情况下使用SUM(CASE WHEN .. END),例如,MAX(CASE WHEN ... END)在不可求值的情况下。 这是我以前的帖子:
How to go about a column with different values in a same row in sql?
如果您需要更具体地匹配您的示例,请大声呼喊。
快乐的比赛 -
Marco the Sane