01 Tableau数据类型
-
字符串
-
日期/日期时间
-
数字
-
布尔数据类型
这些数据类型会以正确的方式自动进行处理
如果创建自己的计算字段,需要注意如何在公式中使用和组合不同的数据类型,如:不能将字符串与数字相加。
许多在定义计算时可供使用的函数仅适用于特定数据类型,如DATEPART()函数只能接受日期/日期时间数据类型作为参数。
数据源中的所有字段都具有一种数据类型。
数据类型反映了该字段中存储的信息的种类,例如整数 (410)、日期 (1/23/2015) 和字符串(“Wisconsin”)。
字段的数据类型在“数据”窗格中由图标标识。
图标 | 数据类型 |
---|---|
![]() | 文本(字符串)值 |
![]() | 日期值 |
![]() | 日期和时间值 |
![]() | 数字值 |
![]() | 布尔值(仅限关系数据源) |
![]() | 地理值(用于地图) |
![]() | 群集组(与在数据中查找群集(Link opens in a new window)结合使用) |
一、主要的数据类型
1. 字符串(STRING)
字符串是由0个或者更多字符组成的序列。例如,“Wisconsin”,“ID-44440”和“Tom Sawyer”都是字符串。
字符串通过单引号或双引号进行识别。
引号字符本身可以重复包含在字符串中,如“O“Hanranhan”。
2. 日期时间(DATE/DATETIME)
日期或日期时间,如"January 23,1972"或"January 23,1972 12:32:00 AM"。
如果要将以长型格式编写的日期解释为日期/日期时间,就要在两端放置#符号。
例如,"January 23,1972"被视为字符串数据类型,而#January 23,1972#被视为日期/日期时间数据类型。
3. 数值型
Tableau中的数值可以为整数或浮点数。对于浮点数,聚合的结果可能并非总是完全符合预期。例如,可能发现SUM函数返回值为-1.42e-14,求和结果正好为0,出现这种情况的原因是数字以二进制格式存储,有时会以极高的精度级别舍入。
4. 布尔型(BOOLEAN)
包含TRUE或FALSE值的字段,当结果未知时会出现未知值。例如,表达式7>Null会生成未知值,会自动转换为Null。
5. 地理型
可以根据需要将省市字段转换为具有经纬度坐标的字段。
二、更改数据类型
在日常工作中,Tableau可能会将字段标识为错误的数据类型。例如,可能会将包含日期的字段标识为整数而不是日期,可以在“数据源”页面上更改曾经作为原始数据源一部分的字段的数据类型。
在“数据源”页面单击字段的字段类型图标,从下拉列表中选择一种新数据类型。
如果使用数据提取,就要确保在创建数据提取之前已经进行所有必要的数据类型更改,否则数据可能不准确。例如,Tableau把原始数据源中的浮点字段解释为整数,生成的浮点字段部分精度会被截断。
打开左下角”已保存数据源“
-
如果要在“数据”窗格中更改字段的数据类型,就要单击字段名称左侧的字段类型图标,然后从下拉列表中选择一种新数据类型
-
若要在视图中更改字段的数据类型,则要在“数据”窗格中右击某个字段,选择“更改数据类型”,然后选择适当的数据类型
由于数据库中数据的精度比Tableau可以建模的精度高,因此将这些值添加到视图中时,状态栏右侧将显示一个精度警告对话框。
三、运算符及优先级
运算符用于执行程序代码运算,会针对一个以上操作数项目进行运算。例如,2+3的操作数是2和3,运算符是“+”。
Tableau支持的基本运算符有算术运算符、逻辑运算符、比较运算符。
1. 算数运算符
+
(加法):此运算符应用于数字时表示相加;应用于字符串时表示串联;应用于日期时,可用于将天数与日期相加。例如,‘abc’+‘def’=‘abcdef’;#April 15,2004#+15=#April 30,2004#。–
(减法):此运算符应用于数字时表示减法;应用于表达式时表示求反;应用于日期时,可用于从日期中减去天数,还可用于计算两个日期之间的天数差异。例如,7–3=4;-(7+3)=-10;#April 15,2004#-#April 8,2004#=7。*
(乘法):此运算符表示数字乘法。例如,5*4=20。/
(除法):此运算符表示数字除法。例如,20/4=5。%
(求余):此运算符算数字余数。例如,5%4=1。^
(乘方):此符号等效于POWER函数,用于计算数字的指定次幂。例如,6^3=216。
2. 逻辑运算符
- AND:逻辑运算且,两侧必须使用表达式或布尔值。例如,IIF(Profit=100 AND Sales=1000,“High”,“Low”),如果两个表达式都为TRUE,结果就为TRUE;如果任意一个表达式为UNKNOWN,结果就为UNKNOWN;其他情况结果都为FALSE。
- OR:逻辑运算或,两侧必须使用表达式或布尔值。例如,IIF(Profit=100 OR Sales=1000,“High”,“Low”),如果任意一个表达式为TRUE,结果就为TRUE;如果两个表达式都为FALSE,结果就为FALSE;如果两个表达式都为UNKNOWN,结果就为UNKNOWN。
- NOT:逻辑运算符否,此运算符可用于对另一个布尔值或表达式求反。例如,IIF(NOT(Sales=Profit),“Not Equal”,“Equal”)。
3. 比较运算符
Tableau有丰富的比较运算符,有==或=(等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、!=和<>(不等于),用于比较两个数字、日期或字符串,并返回布尔值(TRUE或FALSE)。
4. 运算符优先级
所有运算符都按特定顺序计算,如2*1+2
等于4而不等于6,因为*
运算符始终在+
运算符之前计算。
计算运算符的顺序
- 第一行具有最高优先级
- 同一行中的运算符具有相同优先级
- 如果两个运算符具有相同优先级,在公式中就从左向右进行计算。如优先级为5所在行的运算符。
可以根据需要使用括号,括号中的运算符在计算时优先于括号外的运算符,从内部的括号开始向外计算,
(1+(2*2+1)*(3*6/3))=31