MySQL分组数据

tex*_*ext 2 php mysql sql

我想按年龄和性别对数据进行分组:如下样本数据:

Age: 1
      Male: 2
      Female: 3
      Age 1 Total: 5

Age: 2
      Male: 6
      Female: 3
      Age 2 Total: 9
Run Code Online (Sandbox Code Playgroud)

如何根据年龄对数据进行分组,并从mysql数据库中计算该年龄段的所有男性和女性?

cet*_*ras 11

SELECT
  age,
  SUM(CASE WHEN gender = 'male' THEN 1 ELSE 0 END) males,
  SUM(CASE WHEN gender ='female' THEN 1 ELSE 0 END) females,
  COUNT(*) total
FROM yourtable
GROUP BY age
Run Code Online (Sandbox Code Playgroud)

  • +1这是正确的答案.虽然因为OP正在使用MySQL,但我会将其缩短为"选择年龄,总和(性别='男性')男性,总和(性别='女性)女性,按年龄计算一组的总数(*) (3认同)

Pet*_*ang 7

Select age, gender, Count(*) cnt
From your_table
Group By age, gender
Run Code Online (Sandbox Code Playgroud)

会得到你

Age  Gender   cnt
  1  Male     2
  1  Female   3
  2  Male     6
  2  Female   9
Run Code Online (Sandbox Code Playgroud)

您应该能够在PHP之后将每个年龄的计数加起来.