寻找多行数据中的最大值

3
以下是我所拥有的内容
++++++++++++++++++++++++
+ id + field1 + field2 +
++++++++++++++++++++++++
+ 1  +  1     +        +
+ 1  +  23    +        +
+ 1  +        +   1    +
+ 1  +        +   33   +
+ 2  +  55    +        +
+ 2  +        +   2    +
+ 2  +        +   23   +
++++++++++++++++++++++++

What I want is

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

我希望将表格中的多行数据(包含最大值)合并成一行,以便于用户查看。

你有什么好的想法吗?

注意:没有任何一行数据包含所有字段的数据。每个用户只有一行数据,但可能会有两行或更多。

我已经尝试过:

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

但是它出现了错误。
Invalid use of group function:

SQLFiddle的数据

这个问题比我之前的问题 (如何从多行中显示一行数据) 要高级一些。

2个回答

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

2
这个简单的查询应该能解决问题。
SELECT id, MAX(field1), MAX(field2)
FROM myTable
GROUP BY id;

该操作会将所有ID相同的行分组,并选择每个列中每个组内的最大值


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接