Excel ACE.OLEDB:查询中的COUNTIF等效项

我在ACE.OLEDB中开发了以下Microsoft Query:

SELECT Name, Country (SELECT COUNT(*) FROM Table1 as T1 WHERE Name = T.Name AND Country = T.Country AND Description="Work" GROUP BY Name, Country) / COUNT(*) FROM Table1 as T GROUP BY Name, Country 

查询工作正常,但它永远持续在Excel中执行超过90klogging。

是否有可能通过使用COUNTIF等效来优化此查询?

我的形象查询可以优化,如果它像这样工作:

 SELECT Name, Country, COUNTIF(CASE WHEN Description="Work" THEN 1 ELSE 0 END) / COUNT(*) FROM Table1 as T GROUP BY Name, Country 

在回答给你提供CASE WHEN的build议时,我尝试了一个简单的概念certificate查询:

 SELECT SUM(CASE WHEN Description="Work" THEN 1 ELSE 0 END) FROM (SELECT "Work" as Description) 

我得到一个Unrecognized keyword WHEN错误。

伯爵只会计数一些东西。 你应该做一个SUM

 SUM(CASE WHEN Description="Work" THEN 1 ELSE 0 END) 

如果它不工作,它总结一个0,否则一个1。

更多地看你的标签,你提到Excel。 您可能需要将其更改为

 SUM( IIF( Description="Work", 1, 0) )