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

MySQL统计多列彩票数字总出现次数并合并输出的查询方法

实现方案

把6个号码列的所有数据合并为单列数据集后统一分组统计即可,仅需一条SQL即可完成需求。

基础统计查询(返回数字和次数两个字段)

SELECT 
  num, 
  COUNT(*) AS total_count
FROM (
  SELECT number1 AS num FROM lotto_numbers
  UNION ALL
  SELECT number2 AS num FROM lotto_numbers
  UNION ALL
  SELECT number3 AS num FROM lotto_numbers
  UNION ALL
  SELECT number4 AS num FROM lotto_numbers
  UNION ALL
  SELECT number5 AS num FROM lotto_numbers
  UNION ALL
  SELECT number6 AS num FROM lotto_numbers
) AS all_numbers
GROUP BY num
ORDER BY num ASC;

直接输出指定格式的查询

如果需要直接返回1: 435这类拼接好的字符串,使用CONCAT函数即可:

SELECT 
  CONCAT(num, ': ', COUNT(*)) AS result
FROM (
  SELECT number1 AS num FROM lotto_numbers
  UNION ALL
  SELECT number2 AS num FROM lotto_numbers
  UNION ALL
  SELECT number3 AS num FROM lotto_numbers
  UNION ALL
  SELECT number4 AS num FROM lotto_numbers
  UNION ALL
  SELECT number5 AS num FROM lotto_numbers
  UNION ALL
  SELECT number6 AS num FROM lotto_numbers
) AS all_numbers
GROUP BY num
ORDER BY num ASC;

说明

  • 使用UNION ALL而非UNION:UNION会自动对结果去重,会导致统计次数少于实际值,UNION ALL会保留所有重复值,统计结果准确且执行效率更高。
  • 最终结果默认按彩票数字从小到大排序,和你给出的示例输出顺序一致。
  • 如果有某数字从未出现过,结果中不会有对应的行,如果你需要补全所有可能的数字(比如彩票数字范围是1-50的话),可以额外关联一个包含所有可选数字的辅助表即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:45:03