Mysql如何通过boolean为false的另一个id选择max id group

时间:2013-05-06 11:36:38

标签: mysql sql group-by

我有下表:

  • PRIMARY Int id
  • Int another_id
  • 布尔条件

我想选择由another_id分组的所有max(id),但前提是max(id)行的条件等于FALSE

我尝试SELECT MAX(id) WHERE条件IS FALSE GROUP BY another_id,但我得到了之前的ID。 例如,使用下表:

 id | another_id | condition
 1  |         42 |         0
 2  |         42 |         1
 3  |         31 |         0
 4  |         77 |         1

我想要的唯一结果是id == 3

有没有办法做到这一点?

提前,谢谢!

2 个答案:

答案 0 :(得分:1)

SELECT
MAX(id)
FROM
Table1 t
GROUP BY another_id
HAVING SUM(`condition`) = 0

sqlfiddle中查看。

答案 1 :(得分:0)

试试这个内联视图:

SELECT MAX(MaxID) FROM 
(SELECT MAX(ID) AS MaxID FROM TABLE GROUP BY another_id) AS T