MySQL distinct count if conditions unique

Here’s one option using a subquery with DISTINCT:

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
  • SQL Fiddle Demo

This will also work if you don’t want to use a subquery:

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
  • More Fiddle

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)