想象一下这个表t1
,排序GROUP BY agregats
+----------+-------+--------+
| group_id | name | age |
+----------+-------+--------+
| 1 | A1 | 1 |
| 1 | A2 | 2 |
| 1 | A3 | 3 |
| 2 | B1 | 4 |
+----------+-------+--------+
使用MySQL中下面的查询,
SELECT group_id, name, COUNT(*) FROM t1 GROUP BY group_id
我们得到,
+----------+-------+--------+----------+
| group_id | name | age | COUNT(*) |
+----------+-------+--------+----------+
| 1 | A1 | 2 | 3 |
| 2 | B1 | 4 | 1 |
+----------+-------+--------+----------+
正如你可以在这里看到,这是可能的值name = A1和age = 2不是来自同一记录。
我的问题是,我怎么可以控制单个结果形成name
和age
列显示,所以内容是从一个记录?有没有办法以某种方式对它们进行排序?例如按相反顺序按年龄排序会给
+----------+-------+--------+----------+
| group_id | name | age | COUNT(*) |
+----------+-------+--------+----------+
| 1 | A3 | 3 | 3 |
| 2 | B1 | 4 | 1 |
+----------+-------+--------+----------+
谢谢。
这不会SOVE问题:( – ddofborg
请提供一些更多的细节,什么如果你使用MIN(),第二个其他列可能需要作为结果?也许尝试只是添加ORDER BY计数(*)? – pomaxa