UNION is mean to removed duplicate rows. Use "UNION ALL" if you don't want
this to happen.

http://dev.mysql.com/doc/refman/5.0/en/union.html

-----Original Message-----
From: list account [mailto:[EMAIL PROTECTED]
Sent: 11 July 2007 09:19
To: mysql@lists.mysql.com
Subject: BUG in UNION implementation?! Confimation or Explaination
please


Hi all,
I believe to have found a bug in MySQL's union implementation. Can someone
confirm this, please or convince me that this is not a buggy behaviour of
mysql :

UNION seems to behave like DISTINCT by default:

mysql> select 2 c1
    -> union
    -> select 1 c1
    -> union
    -> select 2 c1
    -> union
    -> select 1 c1;
+----+
| c1 |
+----+
|  2 |
|  1 |
+----+
2 rows in set (0.00 sec)

mysql> select 2 c1,1 union select 1 c1,2 union  select 2 c1,3 union select 1
c1,4;
+----+---+
| c1 | 1 |
+----+---+
|  2 | 1 |
|  1 | 2 |
|  2 | 3 |
|  1 | 4 |
+----+---+
4 rows in set (0.00 sec)

mysql> select 2 c1,1 union select 1 c1,2 union  select 2 c1,3 union select
1,2;
+----+---+
| c1 | 1 |
+----+---+
|  2 | 1 |
|  1 | 2 |
|  2 | 3 |
+----+---+
3 rows in set (0.00 sec)

mysql> select avg(c1),avg(distinct c1),sum(c1),count(c1),count(distinct
c1),count(*)  from
    -> (
    -> select 2 c1
    -> union
    -> select 1 c1
    -> union
    -> select 1 c1
    -> union
    -> select 1
    -> ) a
    -> ;
+-------+----------------+-------+---------+-------------------+----------+
|avg(c1)|avg(distinct c1)|sum(c1)|count(c1)|count(distinct c1) | count(*) |
+-------+----------------+-------+---------+-------------------+----------+
|1.5000 |         1.5000 |     3 |       2 |                 2 |        2 |
+-------+----------------+-------+---------+-------------------+----------+
1 row in set (0.00 sec)

but I would have expected:

+-------+----------------+-------+---------+-------------------+----------+
|avg(c1)|avg(distinct c1)|sum(c1)|count(c1)|count(distinct c1) | count(*) |
+-------+----------------+-------+---------+-------------------+----------+
|1.2500 |         1.5000 |     5 |       4 |              2 |        4 |
+-------+----------------+-------+---------+-------------------+----------+


TIA,

CVH

This email is confidential and may also be privileged. If you are not the 
intended recipient please notify us immediately by telephoning +44 (0)20 7452 
5300 or email [EMAIL PROTECTED] You should not copy it or use it for any 
purpose nor disclose its contents to any other person. Touch Local cannot 
accept liability for statements made which are clearly the sender's own and are 
not made on behalf of the firm.

Touch Local Limited
Registered Number: 2885607
VAT Number: GB896112114
Cardinal Tower, 12 Farringdon Road, London EC1M 3NN
+44 (0)20 7452 5300


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

Reply via email to