当存在重复值时,这是在 Tableau 中从出生日期计算年龄的正确方法吗?

Is this the right method to calculate age from date of birth in Tableau when there are duplicate values?

我想要实现的是在画面中从出生日期计算年龄,但是,由于重复记录,无论重复多少次,用户的年龄都会成倍增加。数据源是一个 SQL 数据库。

This is the output when I use a regular DOB calculation

两位用户的年份都是 1998 年,但管理员的年龄是 76 岁。这是我用来获取该输出的计算字段。

IF [DOB]>DATEADD('year',-DATEDIFF('year',[DOB],TODAY()),TODAY()) THEN DATEDIFF('year',[DOB],TODAY())-1 ELSE DATEDIFF('year',[DOB],TODAY()) END

由于数据库中存在多个一对多关系,admin 的记录重复了四次

Example of data for admin user

我试过在其他图表中使用详细程度表达式来删除重复数据。对于这个计算,我尝试对这个图表做同样的事情,但是它没有用

{INCLUDE [Username]:COUNT(DATEDIFF('year', [DOB], TODAY()))}

这是解决这个问题的正确方法还是我对这个问题的处理完全错误?

让我们试试这个 -

创建一个计算字段 CalculatedAge 作为 {fixed[Username]: max([your_calculated_age])} 并将此字段用作用户的年龄。希望这对您有所帮助!