SELECT DISTINCT
ugyfel.account AS account,
ugyfel.line AS line,
ugyfel.name1 AS name,
ugyfel.address3 AS irszam,
ugyfel.address1 AS varos,
ugyfel.address2 AS utca,
COUNT(*) over(PARTITION BY ugyfel.account, ugyfel.line) AS darab
FROM ugyfel, naplo
WHERE naplo.account = ugyfel.account AND naplo.line = ugyfel.line AND ugyfel.name1 NOT LIKE "%teszt%"
ORDER BY darab DESC
COUNT(*) over(PARTITION BY ugyfel.account, ugyfel.line) jelentése:
Csoportosítod a rekordokat: az ugyfel.account + ugyfel.line kombó minden csoportot egyértelműen azonosít. A COUNT(*) ezekre a csoportokra vonatkozik. DISTINCT pedig azért kell, mert enélkül a csoportok minden egyes rekordja új sort generálna (azonos tartalommal).
megj.: Erre szerintem az ORDER BY darab DESC nem működik (bár én csak sima SQL-t használok). Allekérdezéssel ez is áthidalható.
[ Szerkesztve ]