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

如何编写查询语句获取表中首个出现次数不为两次的活跃game_id

获取首个出现次数不为两次的活跃game_id的SQL查询方案

假设我们有一张记录游戏活跃数据的表(比如命名为game_activity),包含game_id(目标游戏ID)和用于确定记录顺序的字段(比如activity_time活跃时间或自增id)。以下是实现需求的具体SQL方案:

核心思路

  1. 统计每个game_id的总出现次数
  2. 筛选出出现次数不等于2的game_id
  3. 按照game_id首次出现的顺序排序,取第一个结果

具体SQL示例

场景1:用时间字段确定首次出现顺序

适用于表中有activity_time这类记录活跃时间的字段:

SELECT game_id
FROM (
    SELECT 
        game_id,
        COUNT(*) AS occurrence_count,
        MIN(activity_time) AS first_active_time
    FROM game_activity
    GROUP BY game_id
    HAVING occurrence_count != 2
) AS filtered_games
ORDER BY first_active_time ASC
LIMIT 1;

场景2:用自增ID确定首次出现顺序

如果表中没有时间字段,只有自增主键id,可以用主键的最小值来判断首次出现顺序:

SELECT game_id
FROM (
    SELECT 
        game_id,
        COUNT(*) AS occurrence_count,
        MIN(id) AS first_record_id
    FROM game_activity
    GROUP BY game_id
    HAVING occurrence_count != 2
) AS filtered_games
ORDER BY first_record_id ASC
LIMIT 1;

补充说明

  • 子查询先完成分组统计和筛选,外层查询按首次出现顺序排序后取第一条结果
  • 不同数据库的"取第一条"语法略有差异:SQL Server用TOP 1,Oracle用FETCH FIRST 1 ROW ONLY,上述示例以MySQL/PostgreSQL通用写法为主

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:55:25