5
,我有以下數據T-SQL:使用OVER和PARTITION BY
| Item | Value | Date |
------------------------------
| 1 | 10 | 01.01.2010
| 1 | 20 | 02.01.2010
| 1 | 30 | 03.01.2010
| 1 | 40 | 04.01.2010
| 1 | 50 | 05.01.2010
| 1 | 80 | 10.01.2010
| 2 | 30 | 04.01.2010
| 2 | 60 | 06.01.2010
| 2 | 70 | 07.01.2010
| 2 | 80 | 08.01.2010
| 2 | 100 | 09.01.2010
和下面的語句
SELECT Item, Value, MIN(Date) OVER (PARTITION BY Item)
FROM Data
WHERE Value >= 50
而且我得到以下結果
| Item | Value | Date |
------------------------------
| 1 | 50 | 05.01.2010
| 1 | 80 | 05.01.2010
| 2 | 60 | 06.01.2010
| 2 | 70 | 06.01.2010
| 2 | 80 | 06.01.2010
| 2 | 100 | 06.01.2010
但什麼我需要的是這個
| Item | Value | Date |
------------------------------
| 1 | 10 | 05.01.2010
| 1 | 20 | 05.01.2010
| 1 | 30 | 05.01.2010
| 1 | 40 | 05.01.2010
| 1 | 50 | 05.01.2010
| 1 | 80 | 05.01.2010
| 2 | 30 | 06.01.2010
| 2 | 60 | 06.01.2010
| 2 | 70 | 06.01.2010
| 2 | 80 | 06.01.2010
| 2 | 100 | 06.01.2010
是否有任何快速解決方案來獲得這一個沒有自聯接的陳述?
謝謝:)
你的結果是錯誤的?我只根據你提供的數據得到。 \t 50 2010-05-01 \t 80 2010-10-01 \t 60 2010-06-01 \t 70 2010-07-01 \t 80 2010-08- 01 2 100 2010-09-01 – 2010-03-25 10:29:21
噢,對不起!我糾正了它 – Torben 2010-03-25 10:32:39
+1幫助我理解SQL 2008中的分區 – cbmeeks 2011-06-07 14:22:45