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

MySQL如何查询在售商品数最多的用户并展示其对应商品及售价

需求说明

筛选出售卖商品数量最多的用户,同时展示该用户名下所有在售商品及对应售价。

原SQL存在的问题
  • 聚合函数COUNT()未搭配GROUP BY使用,直接在排序中调用会触发SQL语法错误(除非是兼容非标准SQL的数据库配置,否则无法正常执行)
  • 仅做了排序处理,没有匹配的筛选逻辑,无法仅保留售卖商品数量最多的用户的商品数据
实现方案

单卖家最多场景(仅取排在第一位的卖家)

如果仅需要取排序第一的单个卖家(即使有多个卖家商品数量并列最多也只取一个),可以使用以下SQL:

SELECT i.item_id, i.item_name, i.item_price, u.user_id
FROM item i
JOIN user u ON i.user_id_seller = u.user_id
WHERE i.user_id_seller = (
    -- 子查询统计每个卖家的商品数,取数量最高的卖家ID
    SELECT user_id_seller
    FROM item
    GROUP BY user_id_seller
    ORDER BY COUNT(item_id) DESC
    LIMIT 1
);

多卖家并列最多场景

如果需要覆盖多个卖家商品数量并列最多的情况,可以使用以下兼容逻辑:

SELECT i.item_id, i.item_name, i.item_price, u.user_id
FROM item i
JOIN user u ON i.user_id_seller = u.user_id
WHERE i.user_id_seller IN (
    SELECT user_id_seller
    FROM item
    GROUP BY user_id_seller
    HAVING COUNT(item_id) = (
        -- 子查询计算所有卖家的最大在售商品数
        SELECT MAX(sell_count)
        FROM (
            SELECT COUNT(item_id) AS sell_count
            FROM item
            GROUP BY user_id_seller
        ) AS temp_count
    )
);
逻辑说明
  • 先通过聚合统计得到每个卖家的在售商品数量,匹配得到数量最高的卖家ID列表
  • 关联商品表和用户表,拉取符合条件的卖家对应的全量在售商品及售价信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:24:03