我制定了以下Microsoft查询在ACE.OLEDB:Excel中ACE.OLEDB:COUNTIF相当于查询
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
查询工作正常,但它永远持续超过90K记录在Excel中执行的。
是否可以通过使用COUNTIF
等效来优化此查询?
我的形象,如果它的工作是这样的查询可以进行优化:
SELECT
Name, Country,
COUNTIF(CASE WHEN Description="Work" THEN 1 ELSE 0 END)/COUNT(*)
FROM
Table1 as T
GROUP BY
Name, Country
在答复建议你的情况下,我试图概念查询的一个简单证明:
SELECT SUM(CASE WHEN Description="Work" THEN 1 ELSE 0 END)
FROM (SELECT "Work" as Description)
,我得到一个Unrecognized keyword WHEN
错误。
CASE WHEN似乎并不在MS查询工作,虽然我知道它在T-SQL –
看到我更新后 - 我得到'无法识别的关键字WHEN'错误 –