[英]An alternative to self-join
我有一個像這樣引用自己的表:
Id Total Prev Session
1 | 10 | NULL | 1
2 | 15 | 1 | 1
3 | 11 | NULL | 2
4 | 29 | 2 | 1
5 | 19 | 3 | 2
6 | 47 | 4 | 1
我需要了解特定會話的差異。
對於第1場會議,這樣:
1. 10 -- None to 10
2. 5 -- 10 to 15
3. 14 -- 15 to 29
4. 18 -- 29 to 47
為此,我使用:
SELECT F.Total - P.Total AS Difference
FROM Foo F LEFT OUTER JOIN
Foo P ON F.Prev = P.Id
WHERE Session = @Session
這是非常緩慢的。
如何在不更改表格的情況下更快地檢索這些差異?
你不能。 這是可能的最快查詢,但如果在Session
, Prev
和Id
上添加索引可能會快得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.