簡體   English   中英

MySQL-如何計算當前行中先前出現的次數

[英]MySQL - How to count number of previous occurrences to current row

帶有下表:

+----------+------+
| Platform | day  |
+----------+------+
| 1670254  |    0 |
| 1670254  |    0 |
| 1665087  |    0 |
| 1670254  |    0 |
| 1670254  |    1 |
| 1670254  |    1 |
| 1670254  |    1 |
| 1670254  |    1 |
| 1670254  |    1 |
| 1665160  |    1 |
| 1670254  |    1 |
| 1670254  |    2 |
| 1670254  |    2 |
| 1670254  |    3 |
| 1670254  |    4 |
| 1667145  |    5 |

我想添加第三列,該列計算先前日期的出現次數。 例如,在第1天,平台1670254執行了3次先前的操作。

結果應顯示為:

+----------+------+-----------+
| Platform | day  |  Previous | 
+----------+------+-----------+
| 1670254  |    0 |     0     |
| 1670254  |    0 |     0     |
| 1665087  |    0 |     0     |
| 1670254  |    0 |     0     |
| 1670254  |    1 |     3     |
| 1670254  |    1 |     3     |
| 1670254  |    1 |     3     |
| 1670254  |    1 |     3     |
| 1670254  |    1 |     3     |
| 1665160  |    1 |     0     |
| 1670254  |    1 |     3     |
| 1670254  |    2 |     9     |
| 1670254  |    2 |     9     |
| 1670254  |    3 |    11     |
| 1670254  |    4 |    12     |
| 1667145  |    5 |     0     |

只需一個相關查詢即可獲得每個平台的前一天。

SQL演示

   SELECT *, (SELECT COUNT(Platform) 
              FROM YourTable t2 
              WHERE t1.Platform = t2.Platform
                AND t1.day > t2.day) as Previous
   FROM YourTable t1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM