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

SQLite查询开奖表中出现超2次的数字及对应开奖期号

SQLite 单数字出现频次统计正确实现方案

原有查询问题说明

你之前的写法是将每期的三个号码拼接为字符串后分组,统计的是三个号码的组合出现的次数,而非单个号码的出现次数,和需求不匹配。

实现思路

首先通过UNION ALL将每行的n1、n2、n3三个字段拆分为独立的单数字行,每条记录关联对应开奖期号,再按单个数字分组统计即可。

正确查询语句

SELECT 
  num AS numbers,
  COUNT(*) AS quantity,
  GROUP_CONCAT(drawnumber, ', ') AS Draw
FROM (
  -- 拆分三个数字字段为独立行
  SELECT drawnumber, n1 AS num FROM MyTbl
  UNION ALL
  SELECT drawnumber, n2 AS num FROM MyTbl
  UNION ALL
  SELECT drawnumber, n3 AS num FROM MyTbl
) AS t
GROUP BY num
-- 按需调整筛选条件:严格按需求要超过2次就写COUNT(*)>2,要和你给出的预期结果一致(包含出现2次的数字)就保留当前的>=2
HAVING COUNT(*) >= 2
ORDER BY quantity DESC;

结果说明

如果严格按照需求中「出现次数超过2次」的要求,将HAVING条件改为COUNT(*) > 2,输出结果只会保留数字18和20;如果需要和你给出的预期结果一致,保留出现2次及以上的数字,就使用上面的COUNT(*)>=2条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:54:02