CREATE TABLE nazwiska (
nazw VARCHAR2(50)
);
BEGIN
INSERT INTO nazwiska VALUES('Kowalski');
INSERT INTO nazwiska VALUES('Kozłowska');
INSERT INTO nazwiska VALUES('Nowak');
INSERT INTO nazwiska VALUES('Zieliński');
INSERT INTO nazwiska VALUES('Borowski');
INSERT INTO nazwiska VALUES('Borkowska');
INSERT INTO nazwiska VALUES('Malinowski');
INSERT INTO nazwiska VALUES('Wielicki');
INSERT INTO nazwiska VALUES('Dziedzic');
END;
SELECT UPPER(SUBSTR(nazw, 1, 1)) AS lit, COUNT(*) AS liczba
FROM nazwiska
GROUP BY UPPER(SUBSTR(nazw, 1, 1))
ORDER BY UPPER(SUBSTR(nazw, 1, 1)) DESC;
Jeżeli nie o to chodziło opisz problem dokładniej.