You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:52:51