On Tue, 2005-01-04 at 17:43 -0500, Rhino wrote:
> ----- Original Message ----- 
> From: "John McCaskey" <[EMAIL PROTECTED]>
> To: <mysql@lists.mysql.com>
> Sent: Tuesday, January 04, 2005 5:22 PM
> Subject: not all rows returned when using order by and null values?
> 
> 
> > See below:
> > mysql> (SELECT avg FROM event_log_5minute_20050104 WHERE
> > monitor_id=479139 AND monitor_server_id=1 AND timestamp >=
> > 20050104080000 AND timestamp < 20050105080000 order by avg);
> > +---------+
> > | avg     |
> > +---------+
> > |    NULL |
> > |    NULL |
> > |    NULL |
> > |    NULL |
> > |    NULL |
> > | 55854.1 |
> > | 55854.1 |
> > | 63566.8 |
> > | 70157.6 |
> > |  121185 |
> > |  128803 |
> > |  172269 |
> > |  320097 |
> > +---------+
> > 13 rows in set (0.00 sec)
> >
> > mysql> (SELECT avg FROM event_log_5minute_20050104 WHERE
> > monitor_id=479139 AND monitor_server_id=1 AND timestamp >=
> > 20050104080000 AND timestamp < 20050105080000) order by avg;
> > +---------+
> > | avg     |
> > +---------+
> > |    NULL |
> > | 55854.1 |
> > | 55854.1 |
> > | 63566.8 |
> > | 70157.6 |
> > |  121185 |
> > |  128803 |
> > |  172269 |
> > |  320097 |
> > +---------+
> > 9 rows in set (0.00 sec)
> >
> > mysql>
> >
> > As you can see, I have 13 rows that match the query, if I put the order
> > by in the brackets it works fine.  But when moved outside of them it
> > fails.
> >
> > The reason I have the brackets is this is a dynamically generated query
> > and may span tables ie:
> >
> > (SELECT avg FROM event_log_5minute_20050104 WHERE monitor_id=479139 AND
> > monitor_server_id=1 AND timestamp >= 20050104080000 AND timestamp <
> > 20050105080000) UNION ALL (SELECT avg FROM event_log_5minute_20050105
> > WHERE monitor_id=479139 AND monitor_server_id=1 AND timestamp >=
> > 20050104080000 AND timestamp < 20050105080000) order by avg;
> >
> > Am I missing something and this is expected behavior and not a bug? I'm
> > using 4.0.18, I haven't checked the changelogs yet, maybe its been
> > fixed.
> >
> Wow, that's just weird if you ask me ;-) It's as if you added a 'DISTINCT'
> to the SELECT when move the ORDER BY outside of the brackets - except for
> the fact that it returns BOTH of 55854.1 values.
> 
> Sorry, I don't have any idea what is going on there or if it is a bug that
> has been fixed already. ;-)
> 

Yeah, thats exactly what it is like, and its causing my computations to
be corrupted.  I haven't been able to come up with a good workaround
that doesn't result in a significant slowdown in my application (these
queries are run several million times daily... using a limit x,1 to
select the 95th or 99th percentile value, and then store it in another
table).

If anyone else has ideas please comment!  Thanks.

> Rhino
> 
-- 
John A. McCaskey
Software Development Engineer
Klir Technologies, Inc.
[EMAIL PROTECTED]
206.902.2027

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to