的數據是15分鐘的時間間隔相關的值:數據分組根據在SQL Server
Time Value 2010-01-01 00:15 3 2010-01-01 00:30 2 2010-01-01 00:45 4 2010-01-01 01:00 5 2010-01-01 01:15 1 2010-01-01 01:30 3 2010-01-01 01:45 4 2010-01-01 02:00 12 2010-01-01 02:15 13 2010-01-01 02:30 12 2010-01-01 02:45 14 2010-01-01 03:00 15 2010-01-01 03:15 3 2010-01-01 03:30 2 2010-01-01 03:45 3 2010-01-01 04:00 5 .......... .......... .......... 2010-01-02 00:00
通常,將存在96點。
根據這些值,我們可能注意到從00:15到01:45的值彼此接近,並且從02:00到03:00它們彼此接近,從03:15到04:00他們彼此接近。
基於 「相互靠近」 的規則,我想對數據進行 「分組」 3個部分:
- 00:15至01:45
- 02:00至03: 00
- 3點15到04:00
請考慮該數據可以是隨機的,並且可以根據以上定義的規則被分成大於3份,但最大不應超過10部分。並且分組必須遵守時間順序,例如,您不能僅將00:15/02:30/04:45分組爲1組,因爲這3個點不是連續的。
請介紹一下如何在t-sql中實現它。
更新: 的值可以是:
Time Value 2010-01-01 00:15 3 2010-01-01 00:30 2 2010-01-01 00:45 4 2010-01-01 01:00 5 2010-01-01 01:15 1 2010-01-01 01:30 3 2010-01-01 01:45 4 2010-01-01 02:00 12 2010-01-01 02:15 13 2010-01-01 02:30 4 --suddenly decreased 2010-01-01 02:45 14 2010-01-01 03:00 15 2010-01-01 03:15 3 2010-01-01 03:30 2 2010-01-01 03:45 3 2010-01-01 04:00 5 .......... .......... .......... 2010-01-02 00:00
對這類情況,我們不應該組單獨02:30,因爲我們想組的大小必須至少爲3分,我們將把這一點(02:30)放到上一組(從02:00到03:00)。
,如果你是有關「相互靠近」的定義更清晰這可能會有幫助。你認爲「接近」最大的數值差異是什麼? –
也定義了「分組」。分組是指像子彈列表一樣的報告嗎?是否有最小數量的最小組數? – Paparazzi
如果我有一個序列,例如1,2,3,4,5,6,7,8,9,那麼該怎麼辦?每一個都與前一個「接近」,但是9可能不會被認爲接近於1編程中最困難的部分通常是搞清楚你想要解決什麼問題。 –