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

MySQL 5.7.21如何获取包含并列项的销量TOP3产品

实现包含并列项的销量TOP3查询(MySQL 5.7适配版)

嘿,针对你这个要包含并列项的TOP3需求,结合你用的MySQL 5.7版本(不支持窗口函数),给你一个最简的实现方案:

核心思路

先提取出销量排名前3的不同销量值(比如你示例里的12、7、5),然后筛选所有销量属于这些值的产品,这样就能把所有并列的TOP3产品都包含进来。

最终查询语句

SELECT 
    articles.name AS 'Product Name', 
    overview.article_count
FROM (
    -- 先计算每个产品的总销量
    SELECT 
        articel_id, 
        COUNT(articel_id) AS article_count 
    FROM sales_records_row 
    GROUP BY articel_id
) AS overview
JOIN articles ON articles.articel_id = overview.articel_id
-- 筛选销量属于前3个不同销量值的产品
WHERE overview.article_count IN (
    SELECT DISTINCT article_count
    FROM (
        -- 取降序排列的前3个销量值
        SELECT COUNT(articel_id) AS article_count
        FROM sales_records_row
        GROUP BY articel_id
        ORDER BY article_count DESC
        LIMIT 3
    ) AS top_3_sales
)
-- 最后按销量降序、产品名排序,结果更规整
ORDER BY overview.article_count DESC, articles.name;

效果说明

这个语句会返回所有销量处于前3个销量等级的产品:

  • 比如你示例里的销量12(第1名)、7(第2名)、5(第3名),所有销量为这三个值的产品都会被选中,最终得到5条数据,完全符合你的需求。

小提示

注意你原查询里的拼写:articel_id应该是article_id(少了一个l),如果数据库字段是正确的拼写,记得统一修正哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:22:49