海纳嗨数-帮助中心
SQL查询
1 概述
当已有的分析模型不满足分析需求时,可以通过SQL查询功能进行自定义查询,SQL查询的结果可以保存为看板/书签查看。
2 位置和使用权限
操作位置: 分析配置-SQL查询
使用权限: 不同的项目角色操作权限如下
项目角色 | 权限 | 权限明细 |
管理员 | 查看、功能使用 | 查看表结构、数据概览、运行SQL语句并对结果进行保存、下载、保存为书签、保存为视图、添加图表等 |
分析师 | 查看、功能使用 | 查看表结构、数据概览、运行SQL语句并对结果进行保存、下载、保存为书签、保存为视图、添加图表等 |
普通用户 | 无权限 | 无权限 |
3 页面概览
SQL查询页面主要分为数据显示区、语句编写区和结果展示区三个部分。其中结果展示区分为表结构、数据概览、查询结果、查询历史四个功能页面。
语句编写框支持格式化操作,查询结果可以进行下载、保存为书签、保存为视图、添加图表的操作。
4 功能结构
4.1 查看数据表
SQL查询页面左侧会展示项目已有的数据表,包括事件表、属性表、标签分群表、维度表等数据。查询中主要使用到的数据表的命名规则对应如下:
数据表 | 表含义 | 备注 |
dwd_event_项目名 | 事件表 | 存储元事件和事件属性数据 |
dwd_users_项目名 | 用户表 | 存储最新的用户属性数据 |
ads_feature_项目名 | 标签表 | 存储标签的最新版本数据 |
ads_history_feature_项目名 | 标签历史表 | 存储标签的回溯/备份版本数据 |
dwd_history_users_项目名 | 用户备份表 | 存储备份的用户属性数据 |
dim_event_事件属性名_项目名 | 维度表 | 某事件属性的维度表 |
view_test_项目名 | 视图 | 用户创建保存的视图 |
- 对于数据表的基本操作:
- 可点击表名右侧的按钮复制表名。
- 对于用户创建的视图,用户可进行删除操作。
- 点击数据表,可以查看数据表的表结构或预览前10行数据。
- 查看数据的字段名、字段类型、字段显示名、是否允许为空等基础信息。
- 预览数据前10行
4.2 语句查询
- 支持查询部分语句:默认为全部执行,若只需要执行部分语句,请选中语句后点击运行。
- 支持一次查询多条语句:多个查询语句使用分号间隔,结果将在结果1、结果2···处分别进行展示,鼠标悬浮至对应tab,会展示其对应执行语句。
- 支持注释功能,单行注释使用–,多行注释使用/* */
4.3 添加图表
点击添加图表后,可进入SQL可视化模块,具体操作详情请至SQL可视化查看。
4.4 保存为书签
SQL查询的结果可以保存为书签或同步至看板,方便后续进行查询和修改。书签或看板的操作详情可至「分析看板」和「书签」查看。
- 保存为书签,保存后可在书签管理列表查看该条数据。
4.5 保存为视图
SQL查询的结果可以保存为视图,在查询中可以基于视图进行其他查询。
- 如果需要删除视图,可以在数据表概览中选中视图,点击「删除视图」按钮完成删除
4.5 查询历史
查询历史将记录用户最近100条查询记录,点击按钮「复制代码」和「运行」可以快速操作,方便用户的编写和修改。
- 在查询历史页下,只能查看自己在该租户中的SQL查询历史,无法查看他人的查询历史。每个用户只会记录近30天的查询记录,到期将清除查询记录。
4.6 数据下载
当查询数据数过多时,查询结果最多只展示前1000条记录,若想查看完整的数据,可点击「下载」获取完整数据(最多下载100万条),下载的文件格式为csv。
5 实例
5.1 查看用户在某天的具体行为
SELECT * FROM dwd_event_1 WHERE user_id = 'aabbcc' AND event_time = '2022-09-22' LIMIT 1000;
5.2 查询发生过A行为但是没有发生过B行为的用户数
SELECT a.user_id FROM (
SELECT DISTINCT user_id FROM dwd_event_1 WHERE event_time='2022-09-22' AND event = 'app_start'
) a
LEFT OUTER JOIN (
SELECT DISTINCT user_id FROM dwd_event_1 WHERE event_time='2022-09-22' AND event = 'app_login'
) b
ON a.user_id = b.user_id
WHERE b.user_id IS NULL
5.3 查询活动期间用户的付费次数分布
SELECT
CASE
WHEN pay_count < 5 THEN '<5'
WHEN pay_count < 10 THEN '<10'
WHEN pay_count < 15 THEN '<15'
ELSE '>=15'
END,
COUNT(*)
FROM (
SELECT user_id, COUNT(*) AS pay_count FROM dwd_event_1
WHERE event_time BETWEEN '2022-08-01' AND '202-09-01' AND event = 'pay'
GROUP BY 1
)a
GROUP BY 1
作者:顾航博 创建时间:2022-09-22 16:23
最后编辑:曹诗语 更新时间:2024-11-20 17:38
最后编辑:曹诗语 更新时间:2024-11-20 17:38