使用 PHP 和 MYSQL 进行年龄组统计

kes*_*sm0 4 php mysql group-by function

我想在我的网站上显示用户统计信息,返回年龄组的百分比,例如:

-13 years : $percent %
13-15 years : $percent %
15-20 years : $percent %
23+ : $percent %
Run Code Online (Sandbox Code Playgroud)

在我的 mysql 表中,我有一列birth_date 返回数据时间(yyyy-mm-dd)。

您有这样做的提示或想法吗?

Bli*_*itZ 5

纯SQL:

SELECT
    `group`,
    COUNT(*) as `count`
FROM
`user`
INNER JOIN (
    SELECT 
        0 as `start`, 12 as `end`, '0-12' as `group`
    UNION ALL 
    SELECT
        13, 14, '13-14'
    UNION ALL
    SELECT
        15, 19, '15-19'
    UNION ALL
    SELECT
        20, 150, '20+'
) `sub`
    ON TIMESTAMPDIFF(YEAR, `birth_date`, NOW()) BETWEEN `start` AND `end`
GROUP BY `group` WITH ROLLUP;
Run Code Online (Sandbox Code Playgroud)

其他任何事情都可以通过计算PHP