Tableau 我常用函数整理
日期函数
dateadd
datedadd (date_part, interval, date) 表示在日期 date 的基础上, 以date_part 为单位, 与之间隔 interval的日期
dateadd ("month", -3, #2020/3/8#) 则返回 2019/12/8 0:00:00;
dateadd("day", -7, #2020/3/8#) 则返回 2020/3/1 0:00:00 查看过去一周, 半年, 3个月等的日期会用到.
datediff
- datediff (date_part, start_date, end_date, [start_of_week]) 计算两日期的差, 以 date_part 为单位.
- datediff("week", #2020/3/8#, #2020/3/9#) 返回 0 , 3/8 与 3/9 相差 0 周
- datediff("week", #2020/3/8#, #2020/3/9#, "monday") 返回 1 因为 3/8 是周日, 一周开始若为周一, 则相差一周啦.
isdate
- isdate (string) 判断一个字符串是否为有效日期. 是则返回 "真", 否则 "伪"
- isdate("2020/3/8") ; isdate("2020-03-8") 返回 "真"
makeday
- makeday (year, month, day) 构造一个包含 年, 月, 日 的日期值, 常用于数据提取, 日期比较等
- makeday (2020, 3, 8) 则返回 2020/3/8
maketime
- maketime (hour, minute, second) 构造一个包含 时, 分, 秒 的日期值
- maketime (8, 30, 0) 则返回 1899/12/30 8:30:00
max, min
- max (date1, date2) 也可用于比较两个时间, 返回 较近/ 较远 的一个距今
- max (#2020/1/1#, #2020-3-8#) 返回 2020/3/8; min 则是相反的用法
now
- now () 返回当前的日期和时. 配合 date, year, month 就很灵活了.
- now () 返回 2020/3/8 23: 22:26
- year(now()), month (now ()), date(now()) 分别返回 2020, 3, 2020/3/8
today
- 返回今天的日期. today () 则返回 2020/3/8 . 经常用作与一个 动态的参数值. 比如日报中算环比, 同比都会用到
类型转换
date
- 将给定的 字符串, 数字, 日期 表达式转为日期类型. 常用于强行转换, 比如对 数据库中的各种时间强行转换
- date("2020/3/8") 和 date("2020-3-8 2:22:22") 和 date(2020, 3, 8) 都返回 2020/3/8 这样就能准确比较了
datetime
- 跟 date () 一样的, 只不过更加精确到 时, 分秒. 也是会用在时间的比较上的
- datetime ("2020-3-8 22:22:22") 返回 2020/3/8 22:22:22; 而 datetime ("2020/3/8") 返回 2020/3/8 0:00:00
float, int
- 将表达式转为 浮点数或整数. 注意的是 int 不是四舍五入, 而是直接取整.
- 时间其实也是一个 数字类型. int (#2020-3-8#) 返回 43896; int("666") 返回 666; int("aaa") 则啥都没有.
str
- 将表达式转为字符串类型. 可用于, 字符串的拼接. 如 字段拼接, 构造唯一值等场景. 大类, 小类 排序会用到
逻辑函数
if
- if 条件 then 表达式 end
- if 条件 then 表达式1 else 表达式2 end
# 多层嵌套
if [当期值] > 10000
then if [同期值] > 10000
then "1好"
else "2好"
end
elseif [当期值] <= 10000 and [当期值] > 5000
then "较好"
else "不好"
end
....
case
- 跟 if 的作用基本一样, 但使用更加方便, 尤其在返回结果比较多的情况下
case 表达式
when 值1 then return1
when 值2 then return2
when 值3 then return3
...
else reurnx
end
比如, 对 "省市" 字段进行 区域的划分 (创建计算字段 "大区")
case [省市]
when "吉林" or "辽宁" or "黑龙江" then "东北"
when "安徽" or "江苏" or "浙江" or "福建" then "华东"
when "江西" or "河南" or "湖北" then "华中"
else "未划分"
end
ifnull
- ifnull (expr1, expr2) 如果结果不是 null, 则返回 expr1 否则 返回 expr2 判断时可对 if xxx else ... 优化
- ifnull ([当期值], [同期值]) 等价于, 将当期值的 缺失值 用 同期值填充了.
isnull
- isnull (expr) 返回布尔值. 如果表达式为 null 则返回 "真" 否则返回 "伪"
- 注意的是, isnull (null) 返回 "真"; isull(" ") 返回 "伪". 空字符串不是空哦, 注意跟有点编程语言的区分
聚合函数
Tableau 的拖拽字段到行列, 其实就是执行了大致 SQL: 聚合函数(度量字段) group by [维度]. 默认是 sum. 这就解释了在计算字段的时候, 有的时候需要手动加 sum, 有时候又不需要. 这就需要想想它 原本的 sql 大致是怎样的逻辑即可
count
- 对离散或度量字段, 进行计数, 会忽略 null 值, 不去重
countd
- 对离散或度量字段, 进行计数, 会忽略 null 值, 会去重
- 统计门店数据量, 大区啥的都经常会用到. 注意, 表连接(混合数据源) 不能用 countd. 可通过 sql来 Union 解决
sum
- 只能对度量字段 求和, 会忽略 Null 值. Tableau 默认对度量字段聚合,要看每一条则在 数据 -> 取消聚合 即查看
avg
- 只能用于度量字段 求均值, 会忽略 Null 值
max, min
- 度量字段的最值; 传字符串则返回原值; 也可用做两个时间比较(如上提到)
attr
- attr ([expr]) 如果 expr 的每一行都有值, 则返回该值. 否则返回 * , 会忽略 Null 值
median
- 只能用于度量字段, 求中位数, 会忽略 Null 值
表计算函数
total
- 返回给定表达式的总计, 常用于计算 各自分区中 的全部行的 聚合值等
- total (sum([销售量])) 表示计算 各自分区中的全部行的 sum([销售量])
index
- 返回分区中当前行的索引, 不包含于是值相关的任何排序. 常用于对某个字段和 [手机品牌] 按特定的顺序排列
....
这部分很多, 但目前很多, 没用到, 或者是不会用.
详细级别函数
也称为 " LOD" 表达式 或 "LOD" 计算.
是除视图级别外, 的其他维度上支持聚合, 能实现将 一或多个 维度 附加到 任何的聚合表达式.
与表计算, 参考线等不同在于, LOD 是在数据源中计算的. 针对大型数据源, 会大幅度提高性能 但同时也会导致 Tableau 运行更加复杂的查询 (如多表连接), 在基础数据源缓慢的情况下, 影响性能.
- 固定 (fixed) : 灵活选择 高于 或 低于 视图层, 各个维度进行 group by 再 aggregation
- 包含 ( include): 用于创建 高于 视图层的, 来分组聚合.
- 排除 ( eclude): 用于创建 低于 视图层的, 来进行分组聚合.
表达也似乎不大准确, 举个栗子就好了.
fixed
- {fixed [维度1], [维度2]... : 聚合函数 (度量字段)} 表示 对维度 dim1, dim2 ... 的维度进行聚合操作.
- fixed 计算 在维度筛选器 之前应用, 但会受到 上下文筛选器, 数据源筛选器, 和数据提取筛选器的影响. 如果想要将筛选器应用于 fixed 表达式级别 而又不想用 上下文筛选器. 则可将其改为 include 或 exclude 表达式
通常用 fixed 这样的 LOD 表达式, 可以生成度量或维度.
- {fixed [商品ID] : sum ([销量])} 是计算, 每件商品, 销量的总和
- {fixed [商品ID], [年份] : sum ([销量]) 是计算每件商品, 每年 的销量总和
- {fiexd [商品ID] : min ([订单日期]) 是计算, 每件商品的, 最早订单日期
来个栗子, 以超市数据为例, 计算 每个地区中, 每个省份的销售量, 先建一个计算字段.
然后再将 "地区" 和 "省" 放到列, 再将 地区映射到 颜色做区分.
与之相关的还有 include 和 exclude 的 LOD 表达式, 我暂时没有用到过, 就不写了先. 用到再说吧.
我感觉, 这个 Tableau , 慢慢用下来, 还是有点香的, 慢慢记录有空的话.
Tableau 我常用函数整理的更多相关文章
- NiosII常用函数整理
NiosII常用函数整理 IO操作函数函数原型:IORD(BASE, REGNUM) 输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量函数说明:从基地址为BASE的设备中读取寄存器中偏 ...
- pandas 常用函数整理
pandas常用函数整理,作为个人笔记. 仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档. 约定 from pandas import Series, DataFrame im ...
- oracle常用函数整理
oracle常用函数整理 1.绝对值.取余.判断数值正负函数 绝对值:ABS(n) 示例: SELECT ABS(100),ABS(-100),ABS('100') FROM ...
- Python 学习:常用函数整理
整理Python中常用的函数 一,把字符串形式的list转换为list 使用ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型list from as ...
- JavaScript Array 常用函数整理
按字母顺序整理 索引 Array.prototype.concat() Array.prototype.filter() Array.prototype.indexOf() Array.prototy ...
- mysql常用函数整理
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 ) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 SELECT CEIL( ...
- js常用函数整理
类型转换:parseInt\parseFloat\toString 类型判断:typeof;eg:if(typeof(var)!="undefined")\isNaN 字符处理函数 ...
- MySQL常用函数整理,建议收藏!
常见函数 字符串函数 数字函数 日期函数 聚合函数 流程控制函数 一.字符串函数 concat(s1,s2...,sn) --将s1,s2...,sn连接成字符串,如果该函数中的任何参数为 null, ...
- PHP常用函数整理
推荐网址:http://php.net/manual/zh/http://www.w3cschool.cc/php/php-ref-array.html 错误报告: error_reporting(E ...
- LR常用函数整理
1,变量转参数lr_save_string("aaa","param"):将字符串"aaa"或者一个字符串变量,转变成LR的参数{param ...
随机推荐
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Live View Kit (1)
1.问题描述: 客户端创建实况窗后,通过Push kit更新实况窗内容,这个过程是自动更新的还是客户端解析push消息数据后填充数据更新?客户端除了接入Push kit和创建实况窗还需要做什么工作? ...
- [CF576E] Painting Edges 题解
模版题的升级了. 使用二分图经典判定方法(一个点拆成两个点 \(x,x+n\),连边 \((x,y)\) 就是连接 \((x,y+n),(x+n,y)\),那么是否是二分图就等价于判断 \(x,x+n ...
- 安川MOTOMAN示教盒触摸不良维修及解决方法
1.安川MOTOMAN示教盒触摸不良或局部不灵. (解决方法:更换触摸面板) 2.安川MOTOMAN示教盒无显示. (解决方法:维修或更换内部主板或液晶屏) 3.安川MOTOMAN示教盒显示不良.竖线 ...
- 当openlayers的地图所在的div的尺寸发生变化后,鼠标滚轮缩放地图发生偏移问题以及地图变形问题解决
当地图的尺寸发生变化后,要调用map.updateSize()方法,强制使openlayers重新计算地图视口 updateSize() Force a recalculation of the ma ...
- FormCreate设计器v5.6发布—AI加持的低代码表单设计器正式上线!
近期DeepSeek可谓是刷遍全网,当然,在DeepSeek等AI技术的推动下,人工智能正以惊人的速度改变着各行各业.AI不仅是一种技术趋势,更是未来生产力的核心驱动力. 如今,FormCreate设 ...
- (附体验地址)大模型知识引擎:AI 助手能否助力销售技能提升?
体验地址:https://lke.cloud.tencent.com/webim_exp/#/chat/FAIMcM 腾讯云的大模型知识引擎本身定位于为企业客户及合作伙伴提供服务,因此我在探索如何最佳 ...
- 解决kali虚拟机无法联网问题
解决kali虚拟机无法联网问题 1.排查虚拟机网络连接-检查ipv4设置,确定好手动连接还是DHCP 如图一 2.排查虚拟网络编辑器-网卡配置,确定虚拟机直连外部网络是否为同一网口 如图二 3.排查虚 ...
- Qt QCheckBox设置复选框的大小
文章目录 Qt设计QCheckBox样式表 QCheckBox的各部分代表的样式表 Qt QCheckBox设置复选框的大小 Qt设计QCheckBox样式表 QCheckBox的各部分代表的样式表 ...
- JMeter 简介
JMeter 下载地址: https://jmeter.apache.org/ apipost 下载地址:(另外一个工具) https://www.apipost.cn/
- Ubuntu给Appimage创建快捷方式
下载 AppImageLauncher 2.安装 3.选择要运行的Appimage 双击运行即可.他会在home目录下创建一个applications文件夹,并且帮你自动创建快捷方式.