aggregateAtLeast = (data) => {
const groupedBySubject = _.groupBy(data, 'subject');
return _.map(groupedBySubject, (entries, subject) => {
const sortedEntries = _.orderBy(entries, entry => parseInt(entry.srs_stage), 'desc');
return sortedEntries.reduce((acc, entry, index) => {
if (index === 0) {
acc.push(entry);
} else {
acc.push({
subject: entry.subject,
srs_stage: entry.srs_stage,
count: entry.count + acc[index - 1].count
});
}
return acc;
}, []);
}).flat();
}