Why MySQL having clause omitting zero My fiddle is here.

Work around :
My table structure is 

create table test (grIds int(1), amount int(1));
insert into test values
(1,10),
(1,20),
(1,15),
(2,0),
(3,8),
(3,25),
(3,16),
(4,0),
(4,21);


I have two select clause 

select grIds, max(amount) from test
group by grIds having max(amount);

select grIds, max(amount) from test
group by grIds;


My question is why select with having keeps omitting row having grIds = 2 ?
HAVING clauses can place extra restrictions on the output rows of an aggregate query – just like WHERE clauses do in record-by-record queries. A HAVING clause can impose conditions on any output column or combination of columns, aggregate or not.

As far as NULL is concerned, the following two facts are worth knowing (and hardly surprising, I would guess):

Rows for which the HAVING condition evaluates to NULL won't be included in the result set. (“Only true is good enough.”)

“HAVING  IS [NOT] NULL” is a legal and often useful condition, whether  is aggregate or not. (But if  is non-aggregate, you may save the engine some work by changing HAVING to WHERE and placing the condition before the “GROUP BY” clause. This goes for any condition on non-aggregate columns.)

Remarks

MAX ignores any null values.
For character columns, MAX finds the highest value in the collating sequence.