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

如何用单条SQL子查询查询tags表中最高频标签对应的发布用户userId

SQL问题解答

问题描述

查询tags表中出现次数最多的标签对应的所有发布用户(userId),要求用单条SQL通过子查询实现,不需要拆分多次查询。
对应表结构截图:
对应表结构截图

实现方案

单标签最高频次场景(符合你当前确认只有Getdvd一个最高频标签的情况)

内层子查询统计每个标签的出现次数,倒序排序后取第一条得到最高频标签,外层查询过滤所有关联该标签的用户ID并去重即可:

SELECT DISTINCT userId
FROM tags
WHERE tag = (
    -- 子查询自动获取出现次数最多的标签
    SELECT tag
    FROM tags
    GROUP BY tag
    ORDER BY COUNT(*) DESC
    LIMIT 1
);

兼容多标签并列最高频次场景

如果存在多个标签出现次数相同且都是最高的情况,可以用如下写法覆盖所有场景:

SELECT DISTINCT userId
FROM tags
WHERE tag IN (
    -- 子查询筛选所有出现次数等于最高频次的标签
    SELECT tag
    FROM tags
    GROUP BY tag
    HAVING COUNT(*) = (
        -- 内层子查询计算所有标签的最高出现次数
        SELECT MAX(tag_count)
        FROM (
            SELECT COUNT(*) AS tag_count
            FROM tags
            GROUP BY tag
        ) AS count_tbl
    )
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:51:01