I have this table in a MySQL 5.6 database. It collects the grades (final grade) teachers (usermodified) have awarded students on each of their attempts to each assessment item (itemid), an assessment item can be an assignment, quiz, forum discussion, course overall grade, etc. I only need information on the assignments, so I filter this table on source = 'mod/assign' to fetch that data as follows:
select t1.*
from mytable t1
where t1.source = 'mod/assign'
| id | itemid | source | userid | finalgrade | usermodified | feedback | timemodified |
|:--:|:------:|------------|:------:|:----------:|:------------:|:-----------------------------:|:------------:|
| 1 | 4 | mod/assign | 3 | | 3 | | 1596173158 |
| 15 | 4 | mod/assign | 3 | | 3 | | 1596173203 |
| 16 | 4 | mod/assign | 3 | 2.00000 | 2 | <p>Needs more dragons<br></p> | 1596173324 |
| 18 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>Too many dragons<br></p> | 1596173326 |
| 19 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>Needs more dragons<br></p> | 1596173339 |
| 20 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>4347jgfvgc<br></p> | 1596173343 |
| 21 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>Apples and Carrots<br></p> | 1596173350 |
| 22 | 4 | mod/assign | 3 | 3.00000 | 2 | <p>khjgc<br></p> | 1596173371 |
| 24 | 4 | mod/assign | 4 | | 4 | | 1598234190 |
| 38 | 4 | mod/assign | 4 | | 4 | | 1598234202 |
| 39 | 4 | mod/assign | 4 | 2.00000 | 2 | | 1598234334 |
| 41 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234335 |
| 42 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234341 |
| 43 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234356 |
| 44 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234361 |
I want to add a calculated column at the end called Is Latest?
, which will say 'Yes' if the attempt is the latest attempt and 'No' if otherwise. However, I don't have a clue on how to do this. I know it has to use id
as the column to calculate, as teachers can reneg a grade on an assignment attempt (even if that attempt isn't the latest attempt), which updates timemodified
. The output of that query should be as follows:
| id | itemid | source | userid | finalgrade | usermodified | feedback | timemodified | is latest? |
|:--:|:------:|------------|:------:|:----------:|:------------:|:-----------------------------:|:------------:|------------|
| 1 | 4 | mod/assign | 3 | | 3 | | 1596173158 | No |
| 15 | 4 | mod/assign | 3 | | 3 | | 1596173203 | No |
| 16 | 4 | mod/assign | 3 | 2.00000 | 2 | <p>Needs more dragons<br></p> | 1596173324 | No |
| 18 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>Too many dragons<br></p> | 1596173326 | No |
| 19 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>Needs more dragons<br></p> | 1596173339 | No |
| 20 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>4347jgfvgc<br></p> | 1596173343 | No |
| 21 | 4 | mod/assign | 3 | 2.00000 | 3 | <p>Apples and Carrots<br></p> | 1596173350 | No |
| 22 | 4 | mod/assign | 3 | 3.00000 | 2 | <p>khjgc<br></p> | 1596173371 | Yes |
| 24 | 4 | mod/assign | 4 | | 4 | | 1598234190 | No |
| 38 | 4 | mod/assign | 4 | | 4 | | 1598234202 | No |
| 39 | 4 | mod/assign | 4 | 2.00000 | 2 | | 1598234334 | No |
| 41 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234335 | No |
| 42 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234341 | No |
| 43 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234356 | No |
| 44 | 4 | mod/assign | 4 | 2.00000 | 4 | | 1598234361 | Yes |
I've searched google and StackOverflow for simiar situations, but I've come up empty. Someone marked this question as an associate of this one, but I cannot see a way to modify that question's answers to suit my situation.
I appreciate the help!