は、私は次の表がある場合のMySQLに持つ:最大の奇数の挙動と最大== 0
mysql> select * from foo;
| id | value | bar |
+----+-------+------+
| 1 | 2 | 3 |
| 2 | 0 | 3 |
| 1 | 1 | 5 |
を私は各id
の最大value
でタプルを選択します。しかし、max(value)
が0の場合、結果は得られません。
mysql> select id,max(value),bar from foo group by id having max(value);
| id | max(value) | bar |
+----+------------+------+
| 1 | 2 | 3 |
これはそのように動作するはずですか?
'idでfooグループからのselect id、max(value)'は 'id'ごとに最大値を取得するのに十分です。 'having節'は必要ありません。 –
がmax(value)を持っているかどうかは、真であるか0であるかによって決まります。おそらくmax(value)= select max(value)from t – Mihai
「having」以外に、私に最大の 'value' *を持つレコードを手に入れてください。使用された述語が真であるかどうかをチェックします。あなたの場合、述語は最初の場合に '0'に等しい単純な' max(value) 'です。これはMySQLではfalseとみなされるので、何も返されません。 –