6

たとえば、異なる値について同じフィールドをカウントしたかったのです。

user {user_id、gender}

性別は明らかに男性または女性を持つことができます:)

私はすべての男性と女性のカウントを取得したい、すなわち

COUNT(male)   COUNT(female)  
   4               16

gender coloumnしかし、彼らは同じ感謝から来ているので、私は混乱しています

4

4 に答える 4

13

行ごとの結果については、これを試してください。

SELECT gender, COUNT(User_id) AS count
FROM User
GROUP BY gender;

出力:

| gender | count |
|--------|-------|
|      F |     4 |
|      M |     2 |

総計で行ごとの結果を得るには、これを試してください。

SELECT  (IFNull(gender,'Total')) AS gender,
COUNT(User_id) AS Count
FROM User
GROUP BY gender
WITH rollup;

出力:

| gender | Count |
|--------|-------|
|      F |     4 |
|      M |     2 |
|  Total |     6 |

列ごとの結果については、これを試してください。

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;

出力:

| males | females | Total |
|-------|---------|-------|
|     2 |       4 |     6 |

このSQLFiddleを参照してください

于 2012-08-16T12:01:42.533 に答える
4

あなたのコメントに基づいて、あなたは男性、女性の両方の数と合計数を求めています:

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

SQL FiddlewithDemoを参照してください

于 2012-08-16T12:07:43.300 に答える
1

このクエリを試してください-

SELECT
  COUNT(IF(gender = 'M', User_id, NULL) males,
  COUNT(IF(gender = 'F', User_id, NULL) females
FROM
  User
于 2012-08-16T12:03:42.093 に答える
0

これを試してください:合計数で:

Select gender,count(*) as count
From User
Group by gender
with rollup

SQlフィドルデモ

于 2012-08-16T12:09:01.020 に答える