Thread: Illegal use of aggregates or non-group column in target list
I'd like to return an average for one item in my database grouped by another item. For example, The table looks like this: ================= CREATE TABLE data_table ( subject text, arm char, target int4, -- end of primary key reaction_time float4 ); CREATE UNIQUE INDEX pkdata_table ON data_table (subject, arm, target); The command I'd like to use is something like: ================================ select target, avg(reaction_time) from data_table; and I'd like this command to return: target | avg ============= 1 | 301.3 2 | 311.45 3 | 299.1 4 | 300.8 However, this statement just gives me the error: Illegal use of aggregates or non-group column in target list. So apparently I can only return either one or the other but not the two together. Is there a way to get the output I want in SQL? Thanks. -Tony
Re: [GENERAL] Illegal use of aggregates or non-group column in target list
From
Charles Tassell
Date:
Try : select target, avg(reaction_time) from data_table group by target; Haven't tested it, but it should be close to what you're looking for. At 02:14 PM 3/3/00, G. Anthony Reina wrote: >I'd like to return an average for one item in my database grouped by >another item. For example, > >The table looks like this: >================= >CREATE TABLE data_table ( > subject text, > arm char, > target int4, -- end of primary >key > reaction_time float4 >); >CREATE UNIQUE INDEX pkdata_table ON data_table (subject, arm, target); > > >The command I'd like to use is something like: >================================ >select target, avg(reaction_time) from data_table; > >and I'd like this command to return: > >target | avg >============= > 1 | 301.3 > 2 | 311.45 > 3 | 299.1 > 4 | 300.8 > > >However, this statement just gives me the error: Illegal use of >aggregates or non-group column in target list. > >So apparently I can only return either one or the other but not the two >together. Is there a way to get the output I want in SQL? > >Thanks. >-Tony > > > >************