基于表2启用成就ID统计符合条件的唯一门店数的SQL实现问题
门店数量统计SQL实现方案
参考表
- 表1

- 表2

实现逻辑
首先获取表2中所有标记为enabled的成就ID总数量作为判定阈值,再统计每个门店已完成(AchievedDate不为空)的成就中,属于启用范围的成就数量,数量和阈值相等的门店即为符合要求的门店。
实现代码
SELECT COUNT(*) AS qualified_store_count FROM ( -- 统计每个门店完成的启用成就数量 SELECT StoreNumber, COUNT(*) AS finished_enabled_count FROM StoreAchievementProgress WHERE AchievedDate IS NOT NULL -- 过滤只统计表2中标记为启用的成就 AND AchievementId IN ( SELECT AchievementId FROM AchievementConfig WHERE enable_status = 'enabled' ) GROUP BY StoreNumber ) store_finish_count -- 完成数量等于总启用成就数量即满足条件 WHERE finished_enabled_count = ( SELECT COUNT(*) AS total_enabled_count FROM AchievementConfig WHERE enable_status = 'enabled' )
说明
你可以根据表2的实际表名、状态字段名调整上述SQL中的对应字段,比如表2如果名为AchievementList、状态字段名为status,替换对应的AchievementConfig和enable_status即可。
内容的提问来源于stack exchange,提问作者Pablo Aguirre de Souza
相关产品推荐
相关产品推荐

