I have this table and I want to put a rank/row number to the rows with the following condition
- Same IO will have same rank/row number
- Rank/row number will increment once IO in next row is different from previous row.
Table is sorted by AccessDate then AccessTime and grouped by UserID
I'm using this query but the output is not what I want it to be.
SELECT
ATTCHECKINOUT.UserID,
AccessDate = CAST(CheckTime as date),
AccessTime = CAST(CheckTime as time),
CheckType,
Ranking = DENSE_RANK() over(partition by ATTCHECKINOUT.UserID, CAST(CheckTime as date) order by CheckType)
FROM ATTCHECKINOUT INNER JOIN ATTUSER ON ATTCHECKINOUT.UserID=ATTUSER.UserID
WHERE CheckTime BETWEEN '1/6/2017' AND '1/10/2017' AND ATTUSER.BadgeNumber = 10311
ORDER BY ATTCHECKINOUT.UserID, CheckTime
Output of query
UserID |AccessDate |AccessTime |IO |Ranking
8394 |2017-01-06 |11:24:10 |I |1
8394 |2017-01-06 |11:24:15 |I |1
8394 |2017-01-06 |13:05:13 |O |2
8394 |2017-01-06 |13:05:18 |O |2
8394 |2017-01-06 |13:34:17 |I |1
8394 |2017-01-06 |13:34:20 |I |1
8394 |2017-01-06 |20:35:01 |O |2
8394 |2017-01-06 |20:35:05 |O |2
8394 |2017-01-07 |10:59:49 |I |1
8394 |2017-01-07 |10:59:52 |I |1
8394 |2017-01-07 |17:02:54 |O |2
8394 |2017-01-07 |17:29:39 |I |1
8394 |2017-01-07 |17:29:43 |I |1
8394 |2017-01-07 |20:13:02 |O |2
8394 |2017-01-07 |20:13:05 |O |2
8394 |2017-01-09 |08:32:38 |I |1
8394 |2017-01-09 |08:32:45 |I |1
8394 |2017-01-09 |20:02:52 |O |2
8394 |2017-01-09 |20:02:55 |O |2
I want the output to be like this
UserID |AccessDate |AccessTime |IO |Ranking
8394 |2017-01-06 |11:24:10 |I |1
8394 |2017-01-06 |11:24:15 |I |1
8394 |2017-01-06 |13:05:13 |O |2
8394 |2017-01-06 |13:05:18 |O |2
8394 |2017-01-06 |13:34:17 |I |3
8394 |2017-01-06 |13:34:20 |I |3
8394 |2017-01-06 |20:35:01 |O |4
8394 |2017-01-06 |20:35:05 |O |4
8394 |2017-01-07 |10:59:49 |I |1
8394 |2017-01-07 |10:59:52 |I |1
8394 |2017-01-07 |17:02:54 |O |2
8394 |2017-01-07 |17:29:39 |I |3
8394 |2017-01-07 |17:29:43 |I |3
8394 |2017-01-07 |20:13:02 |O |4
8394 |2017-01-07 |20:13:05 |O |4
8394 |2017-01-09 |08:32:38 |I |1
8394 |2017-01-09 |08:32:45 |I |1
8394 |2017-01-09 |20:02:52 |O |2
8394 |2017-01-09 |20:02:55 |O |2