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

如何检索任意单日售出10种以上不同商品的门店?

解决任意单日售出10种以上不同商品的门店查询问题

问题核心

原SQL代码存在两个关键问题:

  • 硬指定了单一日期,无法覆盖数据库中所有日期
  • 错误使用了inventory库存表,需求是查询售出的商品,应该基于记录实际交易的purchase表

修正后的SQL代码

SELECT DISTINCT
    s.sID,
    s.sName
FROM
    store s
JOIN (
    SELECT
        p.sID,
        p.date
    FROM
        purchase p
    GROUP BY
        p.sID, p.date
    HAVING
        COUNT(DISTINCT p.pID) > 10
) subquery ON s.sID = subquery.sID;

代码逻辑说明

  1. 覆盖所有日期:子查询按门店sID和日期date分组,自动统计每家门店每一天的售出商品种类数,不再依赖固定日期
  2. 使用正确的数据表:purchase表记录的是每笔售出交易,用它统计售出商品才符合需求,inventory是库存数据,和售出行为无关
  3. 去重门店:外层加DISTINCT是为了避免同一个门店因多个日期符合条件而重复出现,如果需要查看每个门店的所有达标日期,可以去掉DISTINCT,并在SELECT里加上subquery.date

可选:显示达标日期的扩展写法

如果需要同时看到门店符合条件的具体日期,用下面的代码:

SELECT
    s.sID,
    s.sName,
    subquery.date
FROM
    store s
JOIN (
    SELECT
        p.sID,
        p.date
    FROM
        purchase p
    GROUP BY
        p.sID, p.date
    HAVING
        COUNT(DISTINCT p.pID) > 10
) subquery ON s.sID = subquery.sID
ORDER BY s.sID, subquery.date;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 16:33:28