You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL查询中统计相同age_from与age_to组合的出现次数?

解决MySQL统计age_from与age_to组合出现次数的问题

嘿,你的思路其实已经走对了大半!你已经找对了用GROUP BY分组统计相同组合的方向,现在只需要调整输出格式,就能得到你想要的结果啦。

最终可用的SQL语句

SELECT 
  CONCAT(`p_age_from`, ' to ', `p_age_to`, ' = ', COUNT(*)) AS `age_range_count`
FROM `user`
GROUP BY `p_age_from`, `p_age_to`
ORDER BY `p_age_from`, `p_age_to`;

语句细节解释

  • CONCAT()函数负责把多个内容拼接成你期望的格式:[起始年龄] to [结束年龄] = [出现次数],完美匹配你要的输出样式
  • COUNT(*)用来统计每个分组的记录数,比单独统计某一列更稳妥(只要分组的两个字段非空,结果完全一致)
  • GROUP BY p_age_from, p_age_to这部分你原来的写法完全正确,确保我们按两个字段的组合来分组统计
  • ORDER BY可以按需调整,比如改成ORDER BY COUNT(*) DESC就能按出现次数从多到少排序

输出结果(和你的期望完全匹配)

age_range_count
-------------------
18 to 100 = 2
18 to 50 = 2
30 to 75 = 3

如果需要同时保留结构化的字段和格式化文本,也可以这么写:

SELECT 
  `p_age_from`,
  `p_age_to`,
  COUNT(*) AS `user_count`,
  CONCAT(`p_age_from`, ' to ', `p_age_to`, ' = ', COUNT(*)) AS `formatted_result`
FROM `user`
GROUP BY `p_age_from`, `p_age_to`
ORDER BY `p_age_from`;

这样既能拿到单独的年龄区间和数字,又能直接看到格式化好的文本,灵活度更高~

内容的提问来源于stack exchange,提问作者geoffc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:20:35