UPDATE a
SET CountOfAA=dt.CountOf,
CountOfBB=dt.CountOf
FROM @MediaResurce a
INNER JOIN (SELECT
aa.Sku,ISNULL(COUNT(bb.sku),0) AS CountOf
FROM @MediaResurce aa
LEFT OUTER JOIN @MediaResurce_Pics bb
ON aa.sku=bb.sku
WHERE somecol = 0
GROUP BY aa.Sku
) dt ON a.sku=dt.sku
INNER JOIN (SELECT
aa.Sku,ISNULL(COUNT(bb.sku),0) AS CountOf
FROM @MediaResurce aa
LEFT OUTER JOIN @MediaResurce_Pics bb
ON aa.sku=bb.sku
WHERE somecol = 1
GROUP BY aa.Sku
) dt2 ON a.sku=dt2.sku
0
A
回答
3
提供的内容有些抽象,很难提供反馈。
UPDATE a
SET CountOfAA = CASE WHEN b.somecol = 0 THEN b.CountOf END,
CountOfBB = CASE WHEN b.somecol = 1 THEN b.CountOf END
FROM @MediaResurce a
JOIN (SELECT aa.Sku,
somecol,
ISNULL(COUNT(bb.sku), 0) AS CountOf
FROM @MediaResurce aa
LEFT JOIN @MediaResurce_Pics bb ON aa.sku = bb.sku
WHERE somecol IN (0, 1)
GROUP BY aa.Sku, somecol) b ON b.sku = a.sku
+0
这基本上查询一次,并根据“somecol”的值将结果放入2个存储桶中。我把这种方法全部加入,并且比使用连接进行两个子选择要快。 – Zachary 2010-10-16 02:46:00
0
刚开始从头开始编写,原来类似于OMG的回答是:
UPDATE a
SET CountOfAA=dt.CountOfAA,
CountOfBB=dt.CountOfBB
FROM @MediaResurce a
INNER JOIN (
SELECT
aa.sku,
SUM(CASE WHEN aa.somecol = 0 THEN 1 ELSE 0 END) AS CountOfAA,
SUM(CASE WHEN aa.somecol = 1 THEN 1 ELSE 0 END) AS CountOfBB
FROM @MediaResurce_Pics bb
INNER JOIN @MediaResurce aa ON aa.sku = bb.sku
GROUP BY aa.sku
) dt ON dt.sku = a.sku
点注意:
- 我认为 'somecol' 是@MediaResurce。如果它存在于@MediaResurce_Pics中,我看不到第二个原因
INNER JOIN
- 对于更大的表,通过在源表上设置适当的索引(例如'sku'和' somecol”。但表变量不支持索引。你可以把它们改成临时表或固定表吗?这张桌子有多大?
相关问题
- 1. 我怎样才能优化这个密码查询?
- 2. 我怎样才能优化这个SQL查询?
- 3. 我怎样才能优化这个MySQL查询?
- 4. 我怎样才能简化这个查询代码太长?
- 5. jQuery - 我怎样才能简化这个?
- 6. Javascript:我怎样才能优化这条线的性能?
- 7. 我怎样才能把这个自定义Linq查询查看?
- 8. 我怎样才能把这个写成一个查询?
- 9. 我怎样才能让这个MySQL查询2个表
- 10. 我怎样才能加入这个2个MySQL查询一起
- 11. 我怎样才能解决这个选择查询
- 12. 我怎样才能解决这个查询
- 13. 我怎样才能加快这个MySQL查询
- 14. 我怎样才能使用这个MySQL查询laravel 5.2?
- 15. 我怎样才能让这个查询更容易阅读
- 16. 我怎样才能以cakephp-3的方式写这个查询?
- 17. Symfony的1.4 - 我怎样才能查询
- 18. 我的Python for循环导致MemoryError。我怎样才能优化这个?
- 19. 我怎样才能让这个更好
- 20. 我怎样才能使这个代码
- 21. 我怎样才能循环这个
- 22. 我怎样才能分开这个NSString?
- 23. 我怎样才能加入这个SQL?
- 24. SQL服务器:我如何才能优化这个查询100000个查询+
- 25. 我怎样才能让这个程序更优雅?
- 26. 此查询在30秒内运行。我怎样才能优化它?
- 27. 我怎样才能优化后续相关的查询通过使用rowid
- 28. 我怎样才能让这样的
- 29. 我怎样才能改变这种Solr的查询
- 30. 我怎样才能做到这一点Oracle查询
没有任何上下文?如果你希望人们花时间回答你的问题,你应该投入一些时间来提问。您的问题很广泛,并且不会告诉我们您遇到的具体问题。 – 2010-10-16 00:12:46
@Mitch小麦,这真的伤害了我的感情 – wil 2010-10-16 00:16:19
这不是私人的(也不应该在SO上)。这是我的专家意见。你需要提供表格,包括定义的索引。告诉我们你目前有什么问题。 SO用户无法读取头脑... – 2010-10-16 00:18:18