-2
我想從此表中找到特定值;每個ElEnd
這是最後的值有ItemNumber 2
:從3個排組中找出最後一個值
ID | ID2 | Item1 | Item2 | Item3 | Element | ItemNum | ElStart | ElEnd
===================================================================
1 | 1 | rock | n | roll | r | 1 | 23.212 | 23.222
2 | 1 | rock | n | roll | o | 1 | 23.222 | 23.256
3 | 1 | rock | n | roll | c | 1 | 23.256 | 23.277
4 | 1 | rock | n | roll | k | 1 | 23.277 | 23.290
5 | 1 | rock | n | roll | n | 2 | 23.290 | 23.321
6 | 1 | rock | n | roll | r | 3 | 23.321 | 23.331
7 | 1 | rock | n | roll | o | 3 | 23.331 | 23.434
8 | 1 | rock | n | roll | l | 3 | 23.434 | 23.456
9 | 1 | rock | n | roll | l | 3 | 23.456 | 23.567
10 | 2 | a | tiny | rock | a | 1 | 23.567 | 23.678
11 | 2 | a | tiny | rock | t | 2 | 23.678 | 23.789
12 | 2 | a | tiny | rock | i | 2 | 23.789 | 23.890
13 | 2 | a | tiny | rock | n | 2 | 23.890 | 23.901
14 | 2 | a | tiny | rock | y | 2 | 23.901 | 24.123
15 | 2 | a | tiny | rock | r | 3 | 24.123 | 24.234
16 | 2 | a | tiny | rock | o | 3 | 24.234 | 24.345
17 | 2 | a | tiny | rock | c | 3 | 24.345 | 24.456
18 | 2 | a | tiny | rock | k | 3 | 24.456 | 24.567
所以在這個例子表的情況下,我想選擇23.321
和24.123
。我後來想在UPDATE
中使用這些值將它們複製到一個新列Item2ElementEnd
。
我試過了一些使用子查詢或UNION
的查詢,但沒有一個是高效的 - 它們都運行得非常慢,我不得不阻止它們(我的表有大約600,000個條目)。
這是一個查詢這給了我錯誤的值(Elend的用於ItemNum 3而不是2):
select ID2, Item2, max(ElEnd)
from t1
group by ID2;
這是一個例子查詢,因爲它運行WAY太慢,沒有工作(我必須中止):
select Item2, ElStart, ElEnd
from t1
where ItemNum = "2"
and ElStart = (select max(ElStart) from t1 as f where f.Item2 = t1.Item2);
我該如何最有效地做到這一點?
因此,所有其他列無關的特定問題? – Strawberry
1)請定義'最後一個值'。我有一個猜測,但是一個問題不應該留下猜測的餘地。 2)請包括你的嘗試。 Atm你的問題看起來更像是「弄清楚我的問題是什麼,併爲我提供複製粘貼解決方案」類型的問題。 – Shadow
正如我在我的問題中所說,我試圖找到每個具有ItemNum 2的ElEnd的最後一次出現,所以在這個示例數據的情況下,將返回的值將是「23.321」,並且'24.123'。 – rayne