Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Distinct Count, wenn die Bedingungen eindeutig sind

Hier ist eine Option, die eine Unterabfrage mit DISTINCT verwendet :

SELECT COUNT(*) gender_count,
   SUM(IF(gender='male',1,0)) male_count,
   SUM(IF(gender='female',1,0)) female_count
FROM (
   SELECT DISTINCT tel, gender
   FROM example_dataset
) t

Dies funktioniert auch, wenn Sie keine Unterabfrage verwenden möchten:

SELECT COUNT(DISTINCT tel) gender_count,
    COUNT(DISTINCT CASE WHEN gender = 'male' THEN tel END) male_count,  
    COUNT(DISTINCT CASE WHEN gender = 'female' THEN tel END) female_count
FROM example_dataset