Ei saa.

Kontseptuaalne andmemudel:  [Mark]-1--------0..*-[Auto]

SELECT mark.*, Count(*) AS arv
FROM Mark INNER JOIN Auto USING (mark_id)
GROUP BY mark;

ERROR: column "mark.mark_id" must appear in the GROUP BY clause or be used in an aggregate function

PostgreSQL-is käsitletakse tabeli nime (või selle aliast) päringu sees sageli kui komposiittüüpi (kogu rea viidet ehk whole-row reference). Seega saan näiteks kirjutada:
 
SELECT mark FROM Mark;
 
GROUP BY klauslisse tabeli nime kirjutamist PostgreSQL siiski ei toeta ning isegi kui toetaks, siis oleks see midagi andmebaasisüsteemi-spetsiifilist.
 
Standardne SQL nõuab, et GROUP BY klauslis loetletaks konkreetsed veerud, mitte tabelid. Selleks on kaks varianti.
 
Variant A: Kõikide veergude väljakirjutamine (Vana - SQL-92 standardi versioon)
 
Kõige traditsioonilisem viis on kirjutada välja kõik Mark tabeli veerud:
 
SELECT mark.*, Count(*) AS arv
FROM Mark INNER JOIN Auto USING (mark_id)
GROUP BY mark_id, nimetus;

See on tüütu, eriti kui tabelis on palju veerge.
 
Variant B: Funktsionaalne sõltuvus (Uuem - SQL:1999 standardi versioon)
 
SQL:1999 tõi sisse mõiste funktsionaalne sõltuvus (functional dependency). See tähendab, et kui grupeerida tabeli primaarvõtme järgi, siis andmebaasisüsteem "teab", et kõik ülejäänud selle tabeli veerud on selle võtmega unikaalselt seotud.
 
Eeldades, et Mark tabeli primaarvõti on (mark_id), näeks standardne lahendus välja nii:
 
SELECT mark.*, Count(*) AS arv
FROM Mark INNER JOIN Auto USING (mark_id)
GROUP BY mark_id;
 
PostgreSQL-is on toetatud mõlemad variandid.