我有两列的表,例如table_data
id value
1 2
1 5
1 4
select * from table_data group by id
但我得到的输出是1 1 ..但实际上我希望这个输出为我的欲望例子1 4或1 5 ...... 怎么弄???
答案 0 :(得分:0)
将MAX与GROUP BY一起使用:
select id, MAX(value) from table_data group by id
如果您需要组中的任何值出现在结果集中,那么只需GROUP BY即可。但是你需要知道,输出行是未确定的。
通常,它处理的第一行将被放入表示其组的输出中。
以下是一个演示:
mysql> create table table_data(id int, value int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into table_data values (1,4),(1,5),(1,2);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM table_data;
SEL+------+-------+
| id | value |
+------+-------+
| 1 | 4 |
| 1 | 5 |
| 1 | 2 |
+------+-------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM table_data GROUP BY id;
+------+-------+
| id | value |
+------+-------+
| 1 | 4 |
+------+-------+
1 row in set (0.00 sec)
答案 1 :(得分:0)
您可以使用聚合函数,您可以从中获取最大值MAX function
SELECT id, MAX(value)
FROM table_data
GROUP BY id
答案 2 :(得分:0)
通过id
从table_data组中选择id,max(value)这将返回1,5
通过id
从table_data组中选择id,min(value)这将返回1,2。
在这种情况下,1,4是不可能的。
答案 3 :(得分:0)
SELECT id, MAX(value)
FROM table_data
GROUP BY id
答案 4 :(得分:0)
select m.id,m.value from
(SELECT * FROM table_data order by field(value,4,2,5))m
group by m.id
我们可以得到我们想要的任何输出......
通过制作