从多行中查找最大数据

时间:2012-06-30 08:05:54

标签: mysql group-by max

以下是我的内容

++++++++++++++++++++++++
+ 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:

data at sqlfiddle

这个问题比我之前的问题有点提前, showing data in one row (from multiple rows)

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

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