I wanted to a count of the same field for different values for example:
user{user_id, gender}
Gender can have obviously male or female :)
i want to get count for all the males and females i.e.
COUNT(male)   COUNT(female)  
   4               16
but im confused because they come from the same gender coloumn thanks
Try this for row wise result:
SELECT gender, COUNT(User_id) AS count
FROM User
GROUP BY gender;
Output:
| gender | count |
|--------|-------|
|      F |     4 |
|      M |     2 |
Try this for row wise result with grand total:
SELECT  (IFNull(gender,'Total')) AS gender,
COUNT(User_id) AS Count
FROM User
GROUP BY gender
WITH rollup;
Output:
| gender | Count |
|--------|-------|
|      F |     4 |
|      M |     2 |
|  Total |     6 |
Try this for column wise result:
SELECT
  COUNT(CASE WHEN gender = 'M' THEN User_id END) AS males,
  COUNT(CASE WHEN gender = 'F' THEN User_id END) AS females,
  COUNT(*) AS Total
FROM User;
Output:
| males | females | Total |
|-------|---------|-------|
|     2 |       4 |     6 |
Based on your comment, you want count for both males, females and the total count:
SELECT sum(case when gender = 'M' then 1 else 0 end) males,
  sum(case when gender = 'F' then 1 else 0 end) females,
  count(*) total
FROM  yourTable
See SQL Fiddle with Demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With