Primo, GROUP BY
arriva alla fine della query (poco prima delle order by
o delle clausole having
se ne avete).
Quindi, tutti i campi della selezione che non sono in una funzione di aggregazione devono essere inclusi nella clausola group by.
così
SELECT customer.first_name, SUM(payment.amount)
FROM customer
INNER JOIN payment
ON payment.customer_id = customer.customer_id
GROUP BY customer.first_name;
Ma i clienti con lo stesso first_name saranno raggruppati, che probabilmente non è veramente quello che vuoi.
in modo piuttosto
SELECT customer.first_name, SUM(payment.amount)
FROM customer
INNER JOIN payment
ON payment.customer_id = customer.customer_id
GROUP BY customer.first_name, customer.customer_id;
fonte
2014-07-04 09:29:14
Grazie, questo è quello che ho cercato! Il [postgres tutorial] (http://www.postgresqltutorial.com/postgresql-group-by/) mi ha confuso, perché dicono che devi mettere la clausola 'GROUP BY' subito dopo' FROM' o 'WHERE'clause . – wonderbummer