读者提问

想请教下,我使用rollup对书库的书籍进行一些数据统计时,我发现字段只能选status时,rollup才可以对不同状态进行calculate-count per group,select则不行。

但是这里有个问题,比如我的书籍状态有的是暂停和弃读,这俩个状态准确来说我不想归入到status固定的3个状态里(to-do、in progress、complete)。

请问有什么别的法子可以让rollup对select下的不同选项也进行calculate-count per group吗?

我的回答

首先,要想出现 count per group 这个选项的前提,是要有 Group,而 Select 意味着每个选项都是互相独立的,不成组的,所以自然不会出现这个选项。

而 Status 本就是三种元状态的合集,具体可以看课程的 2.7 篇 ,有关于 Status(状态)这个字段的详细解读。

Notion20250105新页面008993@2x.png

所以最佳的解决方案就是弃用 Rollup,用更自由、更强大的函数来解决这个问题。

1
2
3
4
5
lets(
all,prop("读书").map(current.prop("名称")).length(),
done,prop("读书").filter(current.prop("单选")=="已读完").length(),
((done/all)*100).round()+"%"
)

解读一下上面的这个函数:

  1. 定义变量 all读书.map(current.名称).length() 统计”读书”数据库中所有条目的数量
  2. 定义变量 done读书.filter(current.单选=="已读完").length() 筛选出”单选”属性为”已读完”的条目数量
  3. 计算百分比((done/all)*100).round()+"%" 将已读完的数量除以总数,乘以100,四舍五入后加上百分号符号

掌握上面这个函数,就可以计算出任意 Select 选项的百分比了。


关联阅读: