具有多个GROUP BY的Mysql

具有多个GROUP BY的Mysql,mysql,Mysql,我有三张桌子 tbl_文章->id、标题、摘要 tbl_用户-->id、姓名、位置、出生日期 tbl_article_follow-->id、article_id、user_id 我想写一个查询,从文章中查找16-24岁、25-34岁等年龄组的用户所遵循的记录 我尝试了以下问题: SELECT COUNT(*), CASE WHEN age >= 16 AND age <= 24 THEN '16-24' WHEN age >=25 AND a

我有三张桌子

tbl_文章->id、标题、摘要

tbl_用户-->id、姓名、位置、出生日期

tbl_article_follow-->id、article_id、user_id

我想写一个查询,从文章中查找16-24岁、25-34岁等年龄组的用户所遵循的记录

我尝试了以下问题:

SELECT COUNT(*), CASE 
        WHEN age >= 16 AND age <= 24 THEN '16-24'
        WHEN age >=25 AND age <=34 THEN '25-34'
        END AS ageband
        FROM ( SELECT YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(u.birth_date) DAY)) 
AS age , af.* FROM tbl_user u 
INNER JOIN tbl_article_follow af on(u.id = af.user_id)) as tbl 
        where age >= 16 GROUP BY ageband
但是,在一个年龄组中,输出有多个相同的故事id 有人能帮我弄清楚吗?

什么是,af.*来自tbl_用户你在那里做什么?我用它只是为了检查文章id。如果他们在同一组中重复,并且是的,它会。i、 e当我删除group by和count*并替换为article_id时