从mysql表中的同一列获取计数?

use*_*482 6 mysql sql database

我想为不同的值计算相同的字段,例如:

用户{user_id,性别}

性别可以有明显的男性或女性:)

我想得到所有男性和女性的计数,即

COUNT(male)   COUNT(female)  
   4               16
Run Code Online (Sandbox Code Playgroud)

但我很困惑,因为他们来自同样的gender coloumn感谢

him*_*056 11

试试这个行的结果:

SELECT gender, COUNT(User_id) AS count
FROM User
GROUP BY gender;
Run Code Online (Sandbox Code Playgroud)

输出:

| gender | count |
|--------|-------|
|      F |     4 |
|      M |     2 |
Run Code Online (Sandbox Code Playgroud)

尝试使用总计的行方式结果:

SELECT  (IFNull(gender,'Total')) AS gender,
COUNT(User_id) AS Count
FROM User
GROUP BY gender
WITH rollup;
Run Code Online (Sandbox Code Playgroud)

输出:

| gender | Count |
|--------|-------|
|      F |     4 |
|      M |     2 |
|  Total |     6 |
Run Code Online (Sandbox Code Playgroud)

尝试以列方式结果:

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;
Run Code Online (Sandbox Code Playgroud)

输出:

| males | females | Total |
|-------|---------|-------|
|     2 |       4 |     6 |
Run Code Online (Sandbox Code Playgroud)

看到这个SQLFiddle