开发者

Optimize "not in" query

开发者 https://www.devze.com 2023-01-02 18:02 出处:网络
Please help optimize this query: SELECT ts.SiteId, COUNT(ts.SiteId) AS Count FROM ts WHERE ts.SiteId not in

Please help optimize this query:

SELECT ts.SiteId, COUNT(ts.SiteId) AS Count 
FROM ts 
WHERE ts.SiteId not in 
   (SELECT ts.SiteId FROM ts WHERE ts.uniqueid = 'xxx') 
GROUP BY ts.开发者_运维问答SiteId ORDER BY Count DESC


SELECT ts.SiteId, COUNT(ts.SiteId) AS Count, 
MAX(CASE WHEN ts.uniqueid = 'xxx' THEN 1 ELSE 0 END) As XXXUniqueID
FROM ts 
GROUP BY ts.SiteId
HAVING XXXUniqueID = 0
ORDER BY Count DESC


In SQL 2005 CTE, it might look like this:


;
WITH 
e AS
(
    SELECT ts.SiteId FROM ts 
    EXCEPT
    SELECT ts.SiteId FROM ts WHERE ts.uniqueid = 'xxx'
)
SELECT e.SiteId, COUNT(e.SiteId) AS Count 
FROM e
GROUP BY e.SiteId ORDER BY Count DESC
0

精彩评论

暂无评论...
验证码 换一张
取 消