当前位置: 首页 > wzjs >正文

企业网站怎样做网络营销案例2022

企业网站怎样做,网络营销案例2022,德庆网站建设,权威发布是什么意思本文系统解析 SQLMesh 的四个核心内置宏,涵盖行列转换的 PIVOT、精准去重的 DEDUPLICATE、灵活生成日期范围的 DATE_SPINE,以及动态表路径解析的 RESOLVE_TEMPLATE。通过真实案例演示参数配置与 SQL 渲染逻辑,并对比宏调用与传统 SQL 的差异&…

本文系统解析 SQLMesh 的四个核心内置宏,涵盖行列转换的 @PIVOT、精准去重的 @DEDUPLICATE、灵活生成日期范围的 @DATE_SPINE,以及动态表路径解析的 @RESOLVE_TEMPLATE。通过真实案例演示参数配置与 SQL 渲染逻辑,并对比宏调用与传统 SQL 的差异,助您高效构建标准化数据处理流程。

SQLMesh 提供了一系列强大的内置宏,用于简化 SQL 查询和数据处理任务。本文将深入介绍四个常用宏:

  1. @PIVOT:将长格式数据转换为宽格式(行列转换)。
  2. @DEDUPLICATE:基于分区列和排序条件去重。
  3. @DATE_SPINE:生成日期范围表,便于时间序列分析。
  4. @RESOLVE_TEMPLATE:动态解析表路径,适用于云存储场景。

通过实际示例,我们将展示这些宏如何提升 SQL 查询的灵活性和效率。在这里插入图片描述

在这里插入图片描述

1. @PIVOT:行列转换利器

功能概述

@PIVOT 用于将长格式数据(单列存储多个值)转换为宽格式(每行对应多个列)。常用于统计分析,如订单状态分布、用户行为分类等。

参数说明

参数说明默认值
column要透视的列必填
values用于透视的值列表必填
alias是否为结果列添加别名true
agg聚合函数(如 SUM, COUNTSUM
cmp比较运算符(=, >, <=
prefix / suffix别名前缀/后缀
then_value / else_value条件成立/不成立时的值1 / 0
quote是否对别名加引号true
distinct聚合时是否去重false

示例

假设有一个 rides 表,记录骑行订单状态(cancelled, completed),我们希望统计每日各状态的订单数:

SQLMesh 宏写法
SELECTdate_day,@PIVOT(status, ['cancelled', 'completed'])
FROM rides
GROUP BY 1
渲染后的 SQL
SELECTdate_day,SUM(CASE WHEN status = 'cancelled' THEN 1 ELSE 0 END) AS "'cancelled'",SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) AS "'completed'"
FROM rides
GROUP BY 1
进阶用法

如果只想统计 completed 状态的订单数,并计算取消率:

SELECTdate_day,@PIVOT(status, ['completed'], agg := 'COUNT') AS completed_orders,@PIVOT(status, ['cancelled'], agg := 'COUNT') AS cancelled_orders,@PIVOT(status, ['cancelled'], agg := 'COUNT') * 1.0 / NULLIF(@PIVOT(status, ['completed'], agg := 'COUNT'), 0) AS cancellation_rate
FROM rides
GROUP BY 1

2. @DEDUPLICATE:高效去重

功能概述

@DEDUPLICATE 使用窗口函数 ROW_NUMBER() 对数据进行去重,适用于需要保留每组最新/最旧记录的场景。

参数说明

参数说明示例
relation表名或 CTEmy_table
partition_by分区列[id, event_date]
order_by排序条件['event_date DESC', 'status ASC']

示例

假设 my_table 存储用户事件日志,我们希望保留每个用户每天的最新记录:

SQLMesh 宏写法
WITH raw_data AS (@DEDUPLICATE(my_table, [id, CAST(event_date AS DATE)], ['event_date DESC', 'status ASC'])
)
SELECT * FROM raw_data
渲染后的 SQL
WITH "raw_data" AS (SELECT *FROM "my_table" AS "my_table"QUALIFY ROW_NUMBER() OVER (PARTITION BY "id", CAST("event_date" AS DATE) ORDER BY "event_date" DESC, "status" ASC) = 1
)
SELECT * FROM "raw_data" AS "raw_data"

3. @DATE_SPINE:生成日期范围表

功能概述

@DATE_SPINE 用于生成连续的日期序列,常用于时间序列分析、数据补全等场景。

参数说明

参数说明示例
datepart时间粒度(day, week, month'day'
start_date起始日期'2024-01-01'
end_date结束日期'2024-01-16'

示例

生成 2024 年 1 月 1 日至 1 月 16 日的日期表:

SQLMesh 宏写法
WITH discount_promotion_dates AS (@DATE_SPINE('day', '2024-01-01', '2024-01-16')
)
SELECT * FROM discount_promotion_dates
渲染后的 SQL(DuckDB)
WITH "discount_promotion_dates" AS (SELECT "_exploded"."date_day" AS "date_day"FROM UNNEST(CAST(GENERATE_SERIES(CAST('2024-01-01' AS DATE), CAST('2024-01-16' AS DATE), INTERVAL '1' DAY) AS DATE[])) AS "_exploded"("date_day")
)
SELECT "discount_promotion_dates"."date_day" AS "date_day"
FROM "discount_promotion_dates" AS "discount_promotion_dates"

4. @RESOLVE_TEMPLATE:动态表路径解析

功能概述

@RESOLVE_TEMPLATE 用于动态生成表路径,适用于云存储(如 S3)或引擎元数据管理。

参数说明

参数说明示例
template字符串模板's3://bucket/@{catalog_name}/@{schema_name}/@{table_name}'
mode返回类型(literaltableliteral

示例

在模型定义中动态指定存储路径:

SQLMesh 宏写法
MODEL (name datalake.landing.customers,physical_properties (location = @resolve_template('s3://warehouse-data/@{catalog_name}/prod/@{schema_name}/@{table_name}'))
)
渲染后的 SQL
-- 生成的表路径示例:
-- s3://warehouse-data/datalake/prod/sqlmesh__landing/landing__customers__2517971505

总结

SQLMesh 的内置宏极大提升了 SQL 查询的灵活性和可维护性:

  • @PIVOT 简化行列转换,适用于统计分析。
  • @DEDUPLICATE 高效去重,优化数据清洗流程。
  • @DATE_SPINE 自动生成日期序列,简化时间序列分析。
  • @RESOLVE_TEMPLATE 动态解析表路径,适配云存储场景。

掌握这些宏的使用方法,可以显著提升 SQL 开发效率,减少重复代码。建议在实际项目中结合业务需求灵活运用! 🚀

http://www.dtcms.com/wzjs/13460.html

相关文章:

  • 重庆做网站开发的集中百度推荐现在为什么不能用了
  • 百度飙风算法 小网站广告公司品牌营销推广
  • 专业做网站app真假神马搜索推广
  • onedrive 做网站静态网站维护合同
  • 无经验培训 网页设计学员百度推广和优化哪个好
  • 沧州网站设计公司价格谷歌搜索引擎香港免费入口
  • dede网站入侵教程百色seo快速排名
  • 怎么建设国际网站合肥优化营商环境
  • 打工网站校企合作建设seo基础视频教程
  • 网站建设网上消费算在年费深圳百度快照优化
  • 哪个网站做超链接百度搜索推广流程
  • 鸡泽企业做网站推广小蝌蚪幸福宝入口导航
  • 武汉响应式网站建设seo关键词选取工具
  • java语言建设网站微博关键词排名优化
  • 交友app搭建关键词优化多少钱
  • 零食店网站建设计划书百度搜索排名怎么做
  • 做鞋的贸易公司网站怎么做好手机优化软件哪个好
  • 关于网站建设的请示报告nba西部最新排名
  • 网站全程设计技术网络营销推广策略有哪些
  • 移动应用网站开发百度软文推广怎样收费
  • 自己做网站要会什么营销渠道策略
  • 做网站还是订阅号微信营销的方法
  • 网站建设所出现的问题哪里有正规的电商培训班
  • 健身网站开发可行性分析广州网络营销选择
  • 网站建设与管理vs2010临沂头条新闻今日头条
  • 如何为一个网站做app微信5000人接推广费用
  • 义乌小商品批发网站官网优化落实防控措施
  • 对外网站ipv6建设方案模板百度一下你就知道百度官网
  • 题库网站开发潍坊网站定制模板建站
  • 啥前端框架可以做网站首页手机网页制作