Tableau中的sql操作

本文介绍了如何在Tableau中使用SQL操作,包括case when进行条件判断,not like排除特定字符串,distinct进行去重,以及where子句筛选特定时间段的数据。通过示例展示了SQL语句在Tableau中对应的计算字段创建方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tableau中的sql操作

1.case when

当paytype为10时按照括号中字段出现顺序做空判断,不为空则finishdate取该字段的值

  • sql:

case when paytype='10' then coalesce(log_finish_time,finishDate,amount_platform_pay_time)  

else coalesce(log_finish_time,finishDate)

end

as finishDate

 

  • Tableau:

创建计算字段

IF paytype=10 and not ISNULL(log_finish_time) then [log_finish_time]
ELSEIF paytype=10 and not ISNULL(finishdate) then [finishdate]
ELSEIF paytype=10 and not ISNULL(amount_platform_pay_time ) then [amount_platform_pay_time]  
ELSEIF not ISNULL(log_finish_time) then [log_finish_time]      
ELSEIF not ISNULL(finishdate) then [finishdate]
end

2. not like

ownername的值不包含‘测试’

  • sql:

ownername not like '%测试%'

  • Tableau:

创建计算字段

not CONTAINS('测试',[ownername])

like同理

3.distinct

左连接后产生许多重复的cardnum,对其进行去重并对money求和

  • sql:

distinct cardnum

sum(money)

  • Tableau:

ZN(SUM({FIXED [cardnum] : MIN([money])}))

因为重复的cardnum元组money值是相等的,取重复元组的最小值,不影响去重结果

4.where

只取上个月的数据进行计数

  • sql

count(truckbrokerordercode)

where DATEDIFF(day,orderdate,GETDATE())>=30 and DATEDIFF(day,orderdate,GETDATE())<=60

  • Tableau:

COUNTD(IF DATEDIFF('day',[orderdate],DATETRUNC('day',NOW()))>=30 and DATEDIFF('day',[orderdate],DATETRUNC('day',NOW()))<=60 
then [truckbrokerordercode] END)

选取距今日30天至60天的数据统计订单数量

 

sql语句均是提取主要语句,不完整

持续更新......

### SQLTableau 实战项目案例及教程 #### 使用场景概述 Tableau Server 是一款商业智能应用程序,用于发布和管理由 Tableau Desktop 创建的数据可视化报表以及数据源[^1]。当与 SQL 数据库集成时,可以实现更强大的数据分析能力。下面介绍一个具体的实战项目案例。 #### 项目背景描述 假设有一个电子商务公司希望分析其销售业绩并预测未来趋势。该公司拥有存储在 MySQL 数据库中的交易记录表 `transactions` ,其中包含订单日期 (`order_date`)、产品 ID (`product_id`)、数量 (`quantity_sold`) 及单价 (`unit_price`) 等字段。 #### 技术栈说明 - **前端工具**: Tableau Desktop/Server - **数据库管理系统 (DBMS)**: MySQL - **编程语言**: SQL #### 步骤详解 ##### 准备工作 确保安装好 Tableau Desktop 或者有权限访问 Tableau Server 。同时确认能够连接至公司的 MySQL 数据库实例。 ##### 获取数据集 编写 SQL 查询语句从 `transactions` 表中抽取所需信息: ```sql SELECT order_date, product_id, quantity_sold * unit_price AS total_sales FROM transactions; ``` 此查询返回每笔订单的具体金额作为新的列 `total_sales` 以便后续处理。 ##### 构建仪表板 利用上述获取的数据,在 Tableau 中构建交互式的销售表现看板。例如,可以通过拖拽操作轻松创建按时间维度汇总销售额的趋势图;还可以进一步细分查看特定产品的销量变化情况。 为了增强用户体验,可添加筛选器让用户自定义时间段范围内的统计结果展示形式——柱状图还是折线图等等。 ##### 发布成果 完成本地开发测试之后,将最终版本上传到 Tableau Server 上供团队成员共享协作。这样不仅提高了工作效率还促进了跨部门之间的沟通交流。 #### 成功要素总结 这个案例强调了几个成功的关键因素: - 高质量的数据准备:通过精确的 SQL 编写获得可靠的基础资料; - 易于理解的视觉呈现:借助 Tableau 的强大绘图功能让复杂的信息变得直观易懂; - 积极促进合作分享:依托 Tableau Server 平台使得更多人能参与到决策过程中来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值