sql - 根据 Count with Clause on Table 2 对表 1 进行计数,sql
问题描述
表格1
表 2
我需要找到在表 2 中实现所有“成就 ID”“启用”的“已实现日期”而不是 Null 的唯一商店总数的计数。
到目前为止,我可以找到实现硬编码数字的商店的数量,但我并没有突破我使用表 2 中的启用 ID 计数来定义数字的部分。
SELECT
COUNT(*) AS count
FROM
(SELECT
StoreNumber, COUNT(*) as Achievements
FROM
StoreAchievementProgress
WHERE
AchievedDate IS NOT NULL
GROUP BY
StoreNumber) count
解决方案
也许这个查询
SELECT S.StoreNumber
FROM StoreAchievementProgress S
RIGHT JOIN (SELECT Id FROM Table2 WHERE Enabled=1 )T
ON T.Id=S.AchievementId
AND AchievedDate IS NOT NULL
GROUP BY S.StoreNumber
HAVING COUNT(1) = (SELECT COUNT(Id) FROM Table2 WHERE Enabled=1 )
推荐阅读
- python - 高阶函数 - 接收 lambda func 以进行导数计算
- c# - 需要帮助,我正在尝试压缩图像
- javascript - 如何在js中获取多个照片名称?
- android - 使用问题的完整操作在使用 android 中的模块化创建的 builf 风味应用程序中反复询问
- javascript - 猫鼬无法通过“field.attributes”进行嵌套搜索
- git - 在 docker 容器中使用 git
- uwp - 如何从 OneDrive SDK 升级到 Microsoft Graph SDK 并保留旧的 AppFolder
- javascript - Youtube Suggestion API 中的数字是什么意思?
- html - 无法减少表行之间的空间
- react-native - 反应本机 ScrollView onScroll 侦听器不起作用