I have two tables:
| customers | ||
|---|---|---|
| id | name | order_id |
| orders | |||
|---|---|---|---|
| id | customer_id | date | amount |
I would like to get the first order for each customer so I used inner join & min on date. however, I'd like to get all order columns as well.
My SQL query is
SELECT
customers.id, customers.name,
MIN(orders.date)
FROM
customers
INNER JOIN
orders ON customers.id = orders.customer_id
GROUP BY
customers.id;
When I try to add more columns from orders table as following:
SELECT
customers.id, customers.name,
MIN(orders.date), orders.id, orders.amount
FROM
customers
INNER JOIN
orders ON customers.id = orders.customer_id
GROUP BY
customers.id;
I get an error
ERROR: column "orders.id" must appear in the GROUP BY clause or be used in an aggregate function