• Register
–1 vote
73 views

Problem :

I want to display the column B in my below mentioned SQL query, but when I try to add it to my query it gives me following error:

Column T2.M' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

 

My code:

SELECT L, COUNT(M) as T1, M 
FROM T2 
WHERE ID=1 
GROUP BY L 
6 5 3
7,540 points

Please log in or register to answer this question.

1 Answer

0 votes

Solution :

This error is trying to tell you that SQL Server is unaware of which M to select from the group.

So either you want to select one specific value in that case you need to use the appropriate aggregate function. Or if you want to select every value as the new row.

Please consider following exaples:

Our Data:

ID  L   M

1   1  13

1   1  79

1   2  13

1   2  13

1   2  42

Our query:

SELECT L, COUNT(M) AS T1

FROM T2

GROUP BY L

will return:

L  T1

1  2

2  3

which is correct.

Now consider the following (incorrect) query, which will produce the following error:

SELECT L, COUNT(M) AS T1, M

FROM T2

GROUP BY L

And it is returned the data set illustrating the problem:

L T1  M

1  2   13? 79? Both 13 and 79 as separate rows? (13+79=92)? ...?

2  3   13? 42? ...?

But now the following two queries will make this clear and will not cause any error:

1.      Using an aggregate query

SELECT L, COUNT(M) AS T1, SUM(M) AS M

FROM T2

GROUP BY L

will return:

L  T1  M

1  2   92

2  3   68

2.      Adding the column to the GROUP BY list query

SELECT L, COUNT(M) AS T1, M

FROM T2

GROUP BY L, M

will return:

L  T1  M

1  1   13

1  1   79

2  2   13

2  1   42

I hope it clears your issues.

9 7 4
38,600 points

Related questions

0 votes
1 answer 179 views
179 views
Problem : I want to select a maximum avg for each cname in my table. SELECT cname, wmname, MAX(avg)  FROM makerar GROUP BY cname; But I will get the below error, ERROR:  column "makerar.wmname" must appear in the GROUP BY clause or be used in an   aggregate ... )  FROM makerar GROUP BY cname; How can I go about fixing above error? Note: This table is the VIEW created from the previous operation.
asked Jan 22, 2020 jwilliam 3.9k points
0 votes
1 answer 2 views
2 views
Problem: I want to group by sender_id, but I get the following error. Someone help.
asked Apr 28 salim1 60.6k points
0 votes
1 answer 59 views
59 views
Problem : Currently I am using the MySQL 5.7.13 on the windows PC with the WAMP Server While executing below query I am facing following error SELECT * FROM `tbl_customer_pod_uploads` WHERE `load_id` = '78' AND `status` = ' ... column 'returntr_prod.tbl_customer_pod_uploads.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
asked Feb 18, 2020 mphil 2.3k points
0 votes
1 answer 44 views
44 views
Problem : I am currently using MySQL 5.7.13 on my windows PC with the WAMP Server I am facing following error while executing below the query. Error: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ' ... functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by Does anybody have any solution for above error?
asked Nov 29, 2019 alecxe 7.5k points
0 votes
1 answer 2 views
2 views
Problem: I got an error - Column 'Employee.EmpID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. select loc.LocationID, emp.EmpID from Employee as emp full join Location as loc on emp.LocationID = ... don't want to count nulls from Employee as emp full join Location as loc on emp.LocationID = loc.LocationID group by loc.LocationID
asked Apr 27 Jack20 5.1k points
0 votes
1 answer 4 views
4 views
Problem: I got an error – Column 'Employee.EmpID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
asked Apr 26 ummeshani 8.8k points
1 vote
1 answer 5 views
5 views
Problem; I get the following error: Error: aggregate value used where an integer was expected.
asked 6 days ago PkGuy 23.5k points
0 votes
1 answer 18 views
18 views
Problem: sql select top 1 from each group. how to solve this problem.
asked Mar 13 Dan phillip 4.8k points
1 vote
1 answer 12 views
12 views
Problem : The Query works fine under Sybase, but gives the error in the title of this post when executed under SQL Server.General outline of the query is: select sum ( t.graduates - ( select sum ( t1.graduates ) from table as t1 where t1 ... : SQL Server “cannot perform an aggregate function on an expression containing an aggregate or a subquery” Any suggestions would be appreciated.
asked Mar 30 Sabbir Hossain 14.6k points
0 votes
1 answer 264 views
264 views
Problem : My stored procedure giving me following error cannot perform an aggregate function on an expression containing an aggregate or a subquery.
asked Nov 15, 2019 peterlaw 6.9k points