Hi,

Try select max(total) from (select mail_out_anon + mail_out_auth as total ... ) dependent_subquery;

On Mon, Jun 22, 2015 at 9:05 AM, Kristian Nielsen <knielsen@knielsen-hq.org> wrote:
Benoit Panizzon <benoit.panizzon@imp.ch> writes:

> MariaDB [maildb]> select mail_out_anon+mail_out_auth,timeslice from
> domaincounters where domain_id=19 order by timeslice desc limit 24;

This takes the first 24 rows by timeslice, and selects them.

> select max(mail_out_anon+mail_out_auth),timeslice from domaincounters where
> domain_id=19 order by timeslice desc limit 24;

This takes a _single_ row containing the max(mail_out_anon+mail_out_auth)
over the entire table. Then it sorts the single row, and limits it to 24
rows (neither of which does anything of course).

> +----------------------------------+---------------------+
> | max(mail_out_anon+mail_out_auth) | timeslice           |
> +----------------------------------+---------------------+
> |                              656 | 2015-06-15 13:00:00 |
> +----------------------------------+---------------------+
>
> Nope, wrong value...

Probably just the maximum over the entire table, right?

Maybe try something like this (untested):

SELECT *
  FROM (SELECT mail_out_anon+mail_out_auth ss, timeslice
          FROM domaincounters
         WHERE domain_id=19
         ORDER BY timeslice desc
         LIMIT 24) tmp
 ORDER BY ss DESC
 LIMIT 1;

> Hmm. I think I see the problem now... the MAX() is done before sorting and
> limiting the result, right?

Right.

 - Kristian.

_______________________________________________
Mailing list: https://launchpad.net/~maria-discuss
Post to     : maria-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-discuss
More help   : https://help.launchpad.net/ListHelp