Alternative zählt verschiedene Männchen und Weibchen.
SELECT
ID,
COUNT(DISTINCT "USER") AS unique_users,
COUNT(DISTINCT DECODE(gender,'M',"USER")) AS male_count,
COUNT(DISTINCT DECODE(gender,'F',"USER")) AS female_count
FROM your_table
GROUP BY ID
ORDER BY ID;
Und das gleiche, aber ohne die Oracle-spezifische DECODE-Funktion.
SELECT
ID,
COUNT(DISTINCT "USER") AS unique_users,
COUNT(DISTINCT CASE gender WHEN 'M' THEN "USER" ELSE NULL END) AS male_count,
COUNT(DISTINCT CASE gender WHEN 'F' THEN "USER" ELSE NULL END) AS female_count
FROM your_table
WHERE ID = 101
GROUP BY ID
ORDER BY ID;
Ich habe "USER" zitiert, da es eine bestimmte Bedeutung in Oracle hat.
Was haben Sie bisher versucht? Haben Sie SUM mit CASE für die Geschlechtertrennung untersucht? – hsan
bedingte Aggregation ist das Schlüsselkonzept, um in der Zukunft nachzuschlagen, aber juergend stellt eine gute Antwort für Sie dar – Matt