Salve,
non ho affatto compreso 
HAVING COUNT(*)<=(SELECT COUNT(*) FROM articolo WHERE giornalista.id=articolo.giornalista giornali GROUP BY giornalista.id);
questo in effetti NON filtra niente, e tra l'altro, in SQL Server (ma direi su ogni dbms) non compila neanche vista la “parola” [giornali] esterna al contesto ed alla sintassi stessa, restituendo
Msg 102, Level 15, State 1, Line 6
Incorrect syntax near 'giornali'.
usando Northwind e le tabelle Customers e Orders, probabilmente scriverei
WITH cteGrouped AS (
    SELECT c.CustomerID, COUNT(*) numart
        FROM dbo.customers c
            JOIN dbo.orders o ON c.CustomerID = o.CustomerID
        GROUP BY c.CustomerID
    )
    SELECT c.CustomerID, c.numart
        FROM cteGrouped c
        WHERE c.numart = (SELECT MIN(numart) FROM cteGrouped);
sto pensando a windowing functions ma non mi viene in mente niente di “intelligente”… vabbe', stomaco pieno dopo pranzo, il sangue non sale bene :D
ho capito male??
salutoni romagnoli
– 
Andrea