如何 return GROUP BY 的所有成员都等于某个值的实例?
How to return instances where all members of GROUP BY equal a certain value?
我有以下 table 结构:
本质上,我需要 return 该分组的所有值对于 LeadIndication 都是 FALSE 的行。我在 Parent 列上使用 GROUP BY,但无法获取 GROUP BY 中的所有记录均为 FALSE 的实例。以下是我的尝试,return 所有分组均按“父级”分组,但在附加逻辑中存在分层问题。
SELECT [AssetID], [InvestmentID] FROM [rdInvestments] GROUP BY [AssetID],[InvestmentID]
如您所见,基于我的屏幕截图的黄色高亮部分,我只想 return 这些行,因为 GROUP BY 的所有成员对于 LeadIndication 都是假的。
使用条件聚合:
SELECT AssetID
FROM rdInvestments
GROUP BY AssetID
HAVING SUM(IIF(LeadIndication <> 'FALSE', 1, 0)) = 0;
另一种方式:
SELECT AssetID
FROM rdInvestments
GROUP BY AssetID
HAVING SUM(IIF(LeadIndication = 'FALSE', 1, 0)) = COUNT(*);
使用子查询试试这个:
SELECT DISTINCT
[AssetID]
FROM
[rdInvestments]
WHERE
[AssetID] Not In
(SELECT T.[AssetID]
FROM [rdInvestments] As T
WHERE T.LeadIndication = 'TRUE')
我有以下 table 结构:
本质上,我需要 return 该分组的所有值对于 LeadIndication 都是 FALSE 的行。我在 Parent 列上使用 GROUP BY,但无法获取 GROUP BY 中的所有记录均为 FALSE 的实例。以下是我的尝试,return 所有分组均按“父级”分组,但在附加逻辑中存在分层问题。
SELECT [AssetID], [InvestmentID] FROM [rdInvestments] GROUP BY [AssetID],[InvestmentID]
如您所见,基于我的屏幕截图的黄色高亮部分,我只想 return 这些行,因为 GROUP BY 的所有成员对于 LeadIndication 都是假的。
使用条件聚合:
SELECT AssetID
FROM rdInvestments
GROUP BY AssetID
HAVING SUM(IIF(LeadIndication <> 'FALSE', 1, 0)) = 0;
另一种方式:
SELECT AssetID
FROM rdInvestments
GROUP BY AssetID
HAVING SUM(IIF(LeadIndication = 'FALSE', 1, 0)) = COUNT(*);
使用子查询试试这个:
SELECT DISTINCT
[AssetID]
FROM
[rdInvestments]
WHERE
[AssetID] Not In
(SELECT T.[AssetID]
FROM [rdInvestments] As T
WHERE T.LeadIndication = 'TRUE')