3

以下是我所拥有的

++++++++++++++++++++++++
+ id + field1 + field2 +
++++++++++++++++++++++++
+ 1  +  1     +        +
+ 1  +  23    +        +
+ 1  +        +   1    +
+ 1  +        +   33   +
+ 2  +  55    +        +
+ 2  +        +   2    +
+ 2  +        +   23   +
++++++++++++++++++++++++

我想要的是

++++++++++++++++++++++++
+ id + field1 + field2 +
++++++++++++++++++++++++
+ 1  +  23    +   33   +
+ 2  +  55    +   23   +
++++++++++++++++++++++++

我想组合这些行(具有最大数据)并在一行中显示用户的数据,而不是像我在表中那样的多行。

知道怎么做吗?

注意:我没有任何具有所有字段数据的行。一行中只有 1 个数据,每个用户有两行或更多行。

我试过了

SELECT id, GROUP_CONCAT(MAX(field1)), GROUP_CONCAT(MAX(field2)) from myTable
GROUP BY id;

但它给出的错误为

Invalid use of group function:

sqlfiddle 中的数据

这个问题比我之前的问题有点高级,在一行中显示数据(来自多行)

4

2 回答 2

2
SELECT id, MAX(field1), MAX(field2) FROM myTable GROUP BY id;
于 2012-06-30T08:08:43.980 回答
2

这个简单的查询应该可以解决问题。

SELECT id, MAX(field1), MAX(field2)
FROM myTable
GROUP BY id;

它将具有相同 id 的所有行分组,并为每列选择每个组内的最大值

于 2012-06-30T08:09:27.170 回答