Используйте GROUP BY и COUNT(DISTINCT ...)
:
SELECT x, COUNT(DISTINCT y) AS cnt_y
FROM yourtable
GROUP BY x
Результат:
x cnt_y
A 1
B 2
Данные испытаний:
CREATE TABLE yourtable (x VARCHAR(100) NOT NULL, y VARCHAR(100) NOT NULL);
INSERT INTO yourtable (x, y) VALUES
('A', 'P'),
('A', 'P'),
('B', 'P'),
('B', 'Q');