How about:

    select  to_char(mtrantime,'mm-dd hh AM') as datetime,
    to_char(mtrantime,'AM') as sort_field,
    count(*) as tot from memtran
    group by sort_field, datetime
    order by sort_field, datetime;

Then ignore the sort_field column?

Michael

"Mike Nolan" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> I'm trying to create a summary log by hour.  Here's the query (somewhat
> simplified):
>
>    select  to_char(mtrantime,'mm-dd hh AM') as datetime,
>    count(*) as tot from memtran
>    group by datetime
>    order by datetime;
>
> The problem is this produces the data in the following order:
>
>  datetime   | tot
> -------------+-----
> 04-08 01 PM |  14
> 04-08 02 PM |  15
> 04-08 03 PM |  23
> 04-08 07 AM |   8
> 04-08 08 AM |  54
> 04-08 09 AM |  30
> 04-08 10 AM |  11
> 04-08 11 AM |  10
> 04-08 11 PM |   7
> 04-08 12 PM |  10
>
> What I'd really like is to get it in chronological order by hour:
>
> 04-08 07 AM |   8
> 04-08 08 AM |  54
> 04-08 09 AM |  30
> 04-08 10 AM |  11
> 04-08 11 AM |  10
> 04-08 12 PM |  10
> 04-08 01 PM |  14
> 04-08 02 PM |  15
> 04-08 03 PM |  23
> 04-08 11 PM |   7
>
> I would prefer not to show the time of day in 24 hour format, but
> there doesn't appear to be a way to order by something that
> isn't in the select and group by clause and I don't want to display
> the hour twice.
>
> Putting the AM/PM before the HH (which looks a bit clumsy) almost works,
> except that 12PM gets sorted to the bottom after 11PM.
>
> Is there an easy way around this?
> --
> Mike Nolan
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
>



---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to