I'm prepping for an SQL interview and was going over this guide.
The eventual code the author wrote was:
SELECT cust_id,
first_name,
sum(total_order_cost)
FROM customers
JOIN orders ON customers.id = orders.cust_id
GROUP BY cust_id,
first_name
MY QUESTION: Why is first_name used in the GROUP_BY? If I wrote the code without first_name in the GROUP BY, I'm getting errors.
thanks in advance.
CodePudding user response:
Unaggregated columns in the SELECT (cust_id and first_name in this case) need to be listed in the GROUP BY. Even in cases like this one, where there's (presumably) only one first_name per cust_id, the DB engine still expects every column in the SELECT to either be in an aggregate function or in the GROUP BY.
