帮助中心 > 功能手册 > 分析配置 > 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_项目名 视图 用户创建保存的视图
  1. 对于数据表的基本操作:

  • 可点击表名右侧的按钮复制表名。
  • 对于用户创建的视图,用户可进行删除操作。
  1. 点击数据表,可以查看数据表的表结构或预览前10行数据。
  • 查看数据的字段名、字段类型、字段显示名、是否允许为空等基础信息。

  • 预览数据前10行

4.2 语句查询

  1. 支持查询部分语句:默认为全部执行,若只需要执行部分语句,请选中语句后点击运行。
  2. 支持一次查询多条语句:多个查询语句使用分号间隔,结果将在结果1、结果2···处分别进行展示,鼠标悬浮至对应tab,会展示其对应执行语句。
  3. 支持注释功能,单行注释使用–,多行注释使用/* */

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-09-18 16:39