我有下表:
DELETE /api/v1/series
我想为每个mysql> select * from foo;
| id | value | bar |
+----+-------+------+
| 1 | 2 | 3 |
| 2 | 0 | 3 |
| 1 | 1 | 5 |
选择最大value
的元组。但是,当id
为0时,我没有得到结果。
max(value)
这应该是这样的,如果是这样,为什么?
答案 0 :(得分:1)
HAVING
不能以任何方式用于从GROUP BY
子句中使用的字段定义的一组记录中选择记录。它更适用于整个集团。
因此,在您的情况下,您必须进行自联接以获取其余的表字段:
select t1.id, t1.value, t1...
from foo as t1
join (
select id, max(value) as max_value
from foo
group by id
) as t2 on t1.id = t2.id and t1.value = t2.max_value
答案 1 :(得分:0)
恕我直言,你可以乘以(id x值)得到MAX夫妇。
create table foo(id int, value int);
insert into foo values
(2,0),
(1,0),
(2,1),
(3,0),
(2,2);
select id, value
from foo
order by (id * value) desc
limit 1;
id | value
2 | 2
drop table foo;