I had a go with dataview JS and think I’ve got something that works. My use case is of a log of music I’ve listened to, using a “listened::” line in my daily notes (which are in a folder called Journal)
let groups = dv.pages('"Vault/Journal"')
.where(p => p.listened)
.groupBy(p => p.file.link)
for (let group of groups.sort(g => g.key, 'desc')) {
dv.header(4, group.key)
dv.list(
group.rows
.listened)
}
I’ve chosen to sort them with the most recent date at the top, but you can change that.
Thanks for the original idea, this is really going to change how I use Obsidian.