Sorry, that was just a typo,

should have been

INSERT INTO NEW_TABLE (select old.x,sum(old.y) from OLD_TABLE old group by
old.x)
  on duplicate key
  update b=sum(old.y);

but this gives

ERROR 1111 (HY000): Invalid use of group function

INSERT INTO NEW_TABLE (select old.x,sum(old.y) from OLD_TABLE old group by
old.x)

works fine...

Any ideas ?

Phil

On Wed, Jul 9, 2008 at 1:07 PM, Ananda Kumar <[EMAIL PROTECTED]> wrote:

> you should say "group by old.x" and not "old.a"
>
>
> On 7/9/08, Arthur Fuller <[EMAIL PROTECTED]> wrote:
>>
>> I think that you need to select old.a otherwise you cannot group by it.
>>
>> Arthur
>>
>> On 7/9/08, Phil <[EMAIL PROTECTED]> wrote:
>> >
>> > Is it possible to do an insert into with subselect and group by with an
>> > additional on duplicate insert ?
>> >
>> > CREATE TABLE NEW_TABLE (
>> >   `a` varchar(10),
>> >   `b` double
>> > ) engine=MyISAM;
>> >
>> >
>> > INSERT INTO NEW_TABLE (select old.x,sum(old.y) from OLD_TABLE old group
>> by
>> > old.a)
>> >   on duplicate key
>> >   update b=sum(old.y);
>> >
>> > I get invalid group by clause on that.
>> >
>> > Currently I achieve the same thing using two seperate queries, but
>> wondered
>> > if I could consolidate as they take ~ 30mins in total (much more complex
>> > tables).
>> >
>> > Anyway, more curious than anything on why it's disallowed and if it's
>> just
>> > something silly I'm missing.
>> >
>> > Phil
>> >
>>
>
>


-- 
Help build our city at http://free-dc.myminicity.com !

Reply via email to