sql - Give all rows appear in another table at least specific number of times -
i using sample database , want write query on tables customers
, orders
gives customers have made more 2 orders. although achive query:
select customers.* customers customers.customerid in( select orders.customerid orders group orders.customerid having count(*)>2 );
i cannot understand why query:
select customers.* orders inner join customers on orders.customerid=customers.customerid group customers.customerid having count(*)>2;
cannot give same results. message database is:
"cannot group on fields selected '*' (customers)."
i had though impression should work, since customers.customerid
included on demanded columns in select
statement. problem , how modify second query in order work, though excecutes superfluous statements?
from sql group statement
the group statement used in conjunction aggregate functions group result-set 1 or more columns.
sql group syntax select column_name, aggregate_function(column_name) table_name column_name operator value group column_name;
so using aggregating, need specify columns aggregating by, , cannot use *
you have specify columns in both select
, group by
clauses.
Comments
Post a Comment