Ashish Karalkar wrote:
Hello there,
I am having data in table something like below:

user_id        type_id
1                    1
1                    2
2                    1
3                    3
4 3 5 1 1 10
7                    6

What i want is the count of all user group by type_id  who are subscribed to 
only one type e.g

Part 1: Find users with only one type_id

SELECT user_id, max(type_id) as type_id
FROM user_types
GROUP BY user_id
HAVING count(*) = 1;

You could use min(type_id) instead of course, since the HAVING clause means there is only one type for each user-id.

Part 2: Summarise on type_id

SELECT type_id, count(*)
FROM
(
  SELECT user_id, max(type_id) as type_id
  FROM user_types
  GROUP BY user_id
  HAVING count(*) = 1
) AS users_with_one_type
GROUP BY type_id;

Note - not tested, might contain syntax errors

--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to