如何用Obsidian Dataview统计嵌套YAML键的工时总和及分类总计?
Obsidian Dataview 嵌套YAML工时统计需求及问题
我用Obsidian每日笔记记录工作耗时,按research、teaching、service三类分类,每类下再细分具体项目,在笔记frontmatter的YAML里按以下格式记录:
--- research: project1: 1 project2: 2.5 service: committee1: 2 committee2: 1.5 teaching: class1: 0 class2: 3 ---
我想借助Dataview插件生成表格,展示每个子项目的总耗时,同时算出research、service、teaching这三类的总计耗时。
我刚接触类SQL查询,也没JavaScript基础,看Dataview文档没找到处理嵌套YAML键的方法。自己试了下面的查询,但Total列只显示单条笔记的项目数据,比如第一行显示:
| May 9, 2023 | 12 | 8 | -Project1: 4 -Project2: 2 |
前两列数值是对的,但第四列数据不对:
TABLE sum(nonnull(rows.research.project1)) AS "Project 1", sum(nonnull(rows.research.project2)) AS "Project 2", sum(nonnull(rows.research)) AS Total, FROM "Daily Notes" GROUP BY file.cday AS "Date"
我接受替代方案,但子项目会不定期变动,如果查询要手动写project1 + project2...这类公式,就得频繁更新,最好能自动识别父分类下的所有子项目。
我知道可以手动加researchTotal:这类键,每天自己计算输入总计,但这完全没效率,就是想学个自动处理的方法。
编辑说明
这个问题是在Obsidian 1.4版本发布前提的,该版本引入的properties功能完全不支持嵌套键,所以这个问题对当前Obsidian版本可能已经不适用,我也基本放弃解决这个问题了。
内容的提问来源于stack exchange,提问作者Bart
相关产品推荐
相关产品推荐

