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