次の問題があります
INSERT INTO statistics_new (SELECT * FROM statistics)
->
-> ON DUPLICATE KEY UPDATE
->
-> end_date = IF(end_date < VALUES(end_date), VALUES(end_date), end_date);
ERROR 1052 (23000): Column 'end_date' in field list is ambiguous
http://dev.mysql.com/doc/refman/5.0/en/insert-select.htmlで推奨されているように列とテーブルのエイリアスを指定しようとすると、同じ結果になりました。
サーバーバージョン:5.5.24-0ubuntu0.12.04.1(Ubuntu)
次のクエリは問題なく実行されます。
INSERT INTO statistics_new (SELECT * FROM statistics)
ON DUPLICATE KEY UPDATE
end_date = VALUES(end_date)