```dataviewjs const folder = "Path/To/Base" const groups = await dv.query(` list WITHOUT id file.folder FROM "${folder}" WHERE any(hours) `) const groupList = [ ...new Set(groups.value.values) ] groupList.forEach(async (group) => { const result = await dv.query(` TABLE WITHOUT id file.link AS "${group.replace(folder + "/", "")}", sum(hours) AS "Hours", project AS "Project", file.name FROM "${group}" `) if (result.successful) { const values = result.value.values const headers = result.value.headers.slice(0, -1); dv.table( headers, values.map(r => { if (!Array.isArray(r[2])) { r[2] = [r[2]] } return [ r[0], r[1], // Keep these as is [ r[3], ...new Set(r[2]) ] ] }) ) } else dv.paragraph("~~~~\n" + result.error + "\n~~~~") }) ```