如何查询特定的日期内同时拥有多种商品的商店?
为了查询满足特定日期内同时拥有多种商品的商店,可以考虑以下 sql 查询:
SELECT DISTINCT 商店,COUNT(DISTINCT 日期) countdate FROM ( SELECT 商店 FROM 表 WHERE 日期='2025-09-01' UNION SELECT 商店 FROM 表 WHERE 日期='2025-09-02' UNION SELECT 商店 FROM 表 WHERE 日期='2025-09-03' ) AS tab GROUP BY 商店 HAVING countdate=3;
此查询执行以下步骤:
- 创建一个中间表 tab,其中包含满足特定日期条件 (2025-09-01、2025-09-02、2025-09-03) 的所有商店。
- 计算每个商店在这些特定日期内出现的天数 (countdate)。
- 分组商店并过滤出 countdate 等于 3 的商店,这意味着这些商店在所有三个日期都拥有至少一种商品。
最终,该查询将返回满足条件的商店及其出现的天数。

店 FROM 表 WHERE 日期='2025-09-01'
UNION
SELECT 商店 FROM 表 WHERE 日期='2025-09-02'
UNION
SELECT 商店 FROM 表 WHERE 日期='2025-09-03'
) AS tab
GROUP BY 商店
HAVING countdate=3;






