Perhaps you should create a new table with an id column and a flag column. Select the found calls > 5 or <= 5 into that new table and set the flag. Then do a left join of your t_callog_calls table on the new table selecting only the rows where the flag is NULL, these should be the rows not found by either query. Inspect the data in these rows manually to determine what is wrong.
> -----Original Message----- > From: Richard Unger [mailto:[EMAIL PROTECTED]] > Sent: September 17, 2002 21:00 > To: [EMAIL PROTECTED] > Subject: aggregate functions producing bad data > > > My query: > > SELECT > count(id), > count( IF(call_end - call_start > 5, id, NULL) ), > count( IF(call_end - call_start <= 5, id, NULL) ) > FROM > t_calllog_calls; > > My result: > > 1994 > 1956 > 35 > > However, 1956 + 35 != 1994. > > Running MySQL 3.23.49-nt > > Cheers, > Rich > --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php