我有一個表記錄每個用戶的登錄數以及該用戶在每次登錄時的當前積分總數。SQL - 計算兩條記錄之間的差異
我想要做的是每天獲得他們的第一次登錄,並計算他們以前的日子的積分之間的積分差異。
爲了讓事情更清晰,我寫了每天獲取每個用戶的分鐘登錄的聲明如下:
SELECT loginLog.username, A.logInDate, loginLog.pointsTotal
FROM loginLog
JOIN
(SELECT MIN(logID) AS logID, username, CAST(logInTime AS DATE) AS logInDate
FROM loginLog
GROUP BY username, CAST(logInTime AS DATE)) A
ON loginLog.logID = A.logID
ORDER BY username, logInDate DESC
將會產生以下結果集:
username logInDate pointsTotal
user1 2015-10-28 82685
user1 2015-10-27 51330
user1 2015-10-26 7810
user2 2015-10-28 221223
user2 2015-10-27 207234
user2 2015-10-26 178781
user3 2015-10-28 616120
user3 2015-10-27 598715
user3 2015-10-26 591289
user4 2015-10-28 187654
user4 2015-10-27 198378
user4 2015-10-26 115014
user5 2015-10-28 248138
user5 2015-10-27 224729
user5 2015-10-26 216229
user6 2015-10-28 68546
user6 2015-10-28 24139
user6 2015-10-27 33171
user6 2015-10-27 6459
user6 2015-10-26 6391
因此,例如,在第一張唱片上,我想添加一列dailyGrowth,計算82685 - 51330,第二張唱片如果計算51330 - 7810等等。
這是poss IBLE?
請標明使用的dbms產品。 (有些非ANSI SQL ......) – jarlh