2017-08-09 54 views
0

我想創建一個子查詢來保持運行總數並返回運行總數超過4.99的次數。在子查詢中保留運行總數並返回一個計數 - SQL Server

+------------+------------+---------------+-------+ 
| Date | Occurrence | Running Total | Count | 
+------------+------------+---------------+-------+ 
| 5/21/2017 |  0.25 |   6.75 |  6 | 
| 5/9/2017 |   1 |   6.5 |  5 | 
| 5/8/2017 |   0 |   5.5 |  4 | 
| 4/17/2017 |  0.25 |   5.5 |  3 | 
| 3/15/2017 |  0.25 |   5.25 |  2 | 
| 2/15/2017 |  0.25 |    5 |  1 | 
| 1/6/2017 |  0.25 |   4.75 |  | 
| 12/19/2016 |  0.25 |   4.5 |  | 
| 12/14/2016 |  0.25 |   4.25 |  | 
| 12/6/2016 |  0.25 |    4 |  | 
| 12/2/2016 |   1 |   3.75 |  | 
| 12/1/2016 |   1 |   2.75 |  | 
| 11/17/2016 |  0.25 |   1.75 |  | 
| 10/17/2016 |   1 |   1.5 |  | 
| 9/29/2016 |  0.25 |   0.5 |  | 
| 9/28/2016 |  0.25 |   0.25 |  | 
| 9/13/2016 |   0 |    0 |  | 
+------------+------------+---------------+-------+ 

根據我提供我想查詢返回的6

表,我有INT的示例數據具有兩列,其中包括日期和發生。 SELECT語句的

例子:

SELECT [Date], [Occurrence] 
FROM TimeUsage 
WHERE [Date] >= DATEADD(YEAR, -1, GETDATE()) 
ORDER BY [DATE] DESC 

我想另一個SQL查詢中使用此代碼。

+1

郵政表和數據作爲文本[閱讀本(http://meta.stackoverflow.com/questions/285551/why-may-i-不要上傳圖像的代碼,當提問/ 285557#285557) –

+0

這裏是一個簡單的工具使用:https://ozh.github.io/ascii-tables/ – xQbert

回答

1

使用窗函數來計算運行總計

SELECT COUNT(RunningTotal) 
FROM (
    SELECT SUM(Occurance) OVER (ORDER BY Date) as RunningTotal 
    FROM YourTable 
) as T 
WHERE RunningTotal > 4.99 
+0

按日期排序desc(在不在窗口函數中的地方之後) – xQbert

+0

@xQbert Op不希望列表中只有元素'> 4.99'的總數,在這種情況下'6' –

+0

OOps。疑難雜症。撤回 – xQbert