sql - SQL 查询搜索 itemID = 0 和具有这些 itemID 等的组
问题描述
我喜欢编写一个查询,在其中过滤 ItemID 和 GroupID。
我想知道哪些 GroupID 有 ItemID = 0 的项目并且有更多项目。当 GroupID 的 ItemID 类似于 0 时,它不能有任何其他项目。
SELECT TOP (1000)
[GroupID]
,[ItemID]
FROM [Store].[dbo].[Items]
where [ItemID] like '0'
我对 sql 真的很陌生,不知道如何进入下一步。
解决方案
group by
您可以使用和解决此问题having
。
我想知道哪些 GroupID 有 ItemID = 0 的项目并且有更多项目。
这将是:
select GroupId
from Items i
group by GroupId
having sum(case when ItemId = 0 then 1 else 0 end) > 0 and -- has "0" and
sum(case when ItemId <> 0 then 1 else 0 end) > 0;
这可以通过一些(合理的)假设来简化。如果“0”是最小值ItemId
并且没有重复项,则:
where min(ItemId) = 0 and count(*) > 1
当 GroupID 的 ItemID 类似于 0 时,它不能有任何其他项目。
如果您想要只有项目 0 的组,那么:
where min(ItemId) = 0 and max(ItemId) = 0
推荐阅读
- javascript - 如何将 JSON 数据中的行添加到我的表中?
- python - 如何在 Python 中捕捉哈希变化?
- php - 图像的 Base64_encode 未正确渲染
- python - 将excel中的每一行与python进行比较时遇到问题
- javascript - 不理解传单中 latLngBounds 的语法
- java - SPOJ "ACPC10A - What’s Next" - wrong answer
- python - Compare result set from 2 sql queries in Python
- javascript - 在javascript中迭代数组和concat
- javascript - How to store a string for later use in Angular from a post method api call?
- reactjs - Cloudinary React component not rendering width or height transformation to URL