MySQL 选择为每个列中的唯一项的行进行计数

标签: MySQL
发布时间: 2015/6/11 23:20:57
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

它很容易地用一个例子说明。让说,我有一个表,3 列-父亲,他们的后代和他们子元素的性别。结果表将列出子女的父亲数目和分裂的男性和女性。

这是的表:

Father   Child    Sex
-----------------------
alpha    name1    m
alpha    name2    f
alpha    name3    m
alpha    name4    f
alpha    name5    f
beta     name6    m
beta     name7    m
charlie  name8    f
charlie  name9    m

期望的结果:

Father   num   m    f
-----------------------
alpha    5     2    3
beta     2     2    0
charlie  2     1    1

num = number of children
m = male, f = female

当我使用计数时它给了我的子元素们所有的父亲从总量和不知道如何将结果拆分为男性和女性。 有什么想法?

解决方法 1:

请尝试:

SELECT
    Father,
    COUNT(child) AS total_child, 
    SUM(IF(Sex = 'm', 1, 0)) AS total_m,
    SUM(IF(Sex = 'f', 1, 0)) AS total_f
FROM
    table_name
GROUP BY
    Father
赞助商