【发布时间】:2018-08-09 00:56:57
【问题描述】:
我在表格中有一些数据。
<table>
<tr>
<td>id</td>
<td>date </td>
<td>value</td>
</tr>
<tr>
<td>1</td>
<td>1/1/2018 12:15 </td>
<td>90</td>
</tr>
<tr>
<td>2</td>
<td>1/1/2018 12:16</td>
<td>89</td>
</tr>
<tr>
<td>3</td>
<td>1/1/2018 12:17</td>
<td>88</td>
</tr>
<tr>
<td>4</td>
<td>1/1/2018 12:18</td>
<td>91</td>
</tr>
<tr>
<td>5</td>
<td>1/1/2018 12:19</td>
<td>92</td>
</tr>
<tr>
<td>6</td>
<td>1/1/2018 12:20</td>
<td>91</td>
</tr>
<tr>
<td>7</td>
<td>1/1/2018 12:21</td>
<td>89</td>
</tr>
<tr>
<td>8</td>
<td>1/1/2018 12:22</td>
<td>90</td>
</tr>
<tr>
<td>9</td>
<td>1/1/2018 12:23</td>
<td>91</td>
</tr>
<tr>
<td>10</td>
<td>1/1/2018 12:24</td>
<td>85</td>
</tr>
</table>
我需要的是每次值低于 90 时找到,然后相应地为它们分配组。一旦低于 90,保持相同的组,直到达到 90 或高于 90。然后更改 groupId 等等。 所以在上面的例子中
<table>
<tr>
<td>id</td>
<td>date </td>
<td>value</td>
<td>goingBelow90</td>
<td>group</td>
</tr>
<tr>
<td>1</td>
<td>1/1/2018 12:15 </td>
<td>90</td>
<td>N</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>1/1/2018 12:16</td>
<td>89</td>
<td>Y</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>1/1/2018 12:17</td>
<td>88</td>
<td>Y</td>
<td>2</td>
</tr>
<tr>
<td>4</td>
<td>1/1/2018 12:18</td>
<td>91</td>
<td>N</td>
<td>3</td>
</tr>
<tr>
<td>5</td>
<td>1/1/2018 12:19</td>
<td>92</td>
<td>N</td>
<td>3</td>
</tr>
<tr>
<td>6</td>
<td>1/1/2018 12:20</td>
<td>91</td>
<td>N</td>
<td>3</td>
</tr>
<tr>
<td>7</td>
<td>1/1/2018 12:21</td>
<td>89</td>
<td>Y</td>
<td>4</td>
</tr>
<tr>
<td>8</td>
<td>1/1/2018 12:22</td>
<td>90</td>
<td>N</td>
<td>5</td>
</tr>
<tr>
<td>9</td>
<td>1/1/2018 12:23</td>
<td>91</td>
<td>N</td>
<td>5</td>
</tr>
<tr>
<td>10</td>
<td>1/1/2018 12:24</td>
<td>85</td>
<td>Y</td>
<td>6</td>
</tr>
</table>
在跳了几圈之后,我能够做到这一点,但它的效率为 0%。在获取 10k 条记录和分配组的同时进行查询大约需要 7 分钟,这是不可接受的。 请告诉我
【问题讨论】:
标签: sql sql-server find-occurrences