SQL自定义查询
支持通过常用SQL函数自定义查询事件表、用户表、用户分群表,获取您想计算的统计指标。
1.使用说明
1.1 基本用法
SELECT
app_key, umid,
event_name,
event_kv_json,
client_time,
to_timestamp (client_time / 1000)
FROM
uapp_event_view
WHERE
ds = '20231213'
AND event_name = '$$_session_start'
LIMIT
100;前端展示500条查询记录
SQL语句仅能使用英文单(')引号,使用双(")报错

1.2 字段说明
1.2.1 事件表(uapp_event_view)
字段 | 类型 | 字段说明 |
app_key | text | 应用Appkey |
umid | text | 友盟umid |
event_name | text | 事件名称 |
install_channel | text | 安装渠道 |
app_channel | text | 应用渠道 |
sdk_version | text | SDK版本 |
app_version | text | app版本 |
server_time | bigint | 服务器时间戳 |
pre_app_version | text | 前一个app版本号 |
screen_width | bigint | 屏幕宽度 |
screen_height | bigint | 屏幕高度 |
os_version | text | 操作系统版本 |
device_brand | text | 设备品牌 |
device_model | text | 设备机型 |
country | text | 国家 |
province | text | 省份 |
city | text | 城市 |
is_wifi | text | 是否wifi |
imei | text | imei(国际移动设备识别码) |
idfa | text | idfa(广告标识符) |
is_new_install | text | 新老用户(1是0否) |
client_time | bigint | 客户端时间戳 |
os | text | 操作系统 |
session_id | text | 会话id |
hour | text | 小时字段 |
install_datetime | text | 安装时间 |
userid | text | 用户id |
duration | double precision | 持续时长 |
android_id | text | 安卓id(设备上唯一标识符) |
access | text | 网络类型 |
carrier | text | 运营商 |
event_kv_json | text | 参数和参数值数据,JSON结构 |
ds | text | 日期(分区) |
该事件表为增量表
1.2.2 用户表(uapp_umid_users_view)
字段 | 类型 | 字段说明 |
app_key | text | 应用appkey |
umid | text | 友盟umid |
client_time | bigint | 客户端时间 |
app_channel | text | 应用渠道 |
province | text | 省份名 |
city | text | 城市名 |
idfa | text | idfa(广告标识符) |
imei | text | imei(国际移动设备识别码) |
oaid | text | oaid开放匿名设备标识符 |
zid | text | 反作弊标识符 |
device_brand | text | 设备品牌 |
device_model | text | 设备机型 |
os | text | 操作系统 |
os_version | text | 操作系统版本 |
app_version | text | 应用版本 |
install_datetime | text | 安装日期 |
install_channel | text | 安装渠道 |
install_app_version | text | 安装应用版本 |
active_ds | text | 活跃日期 |
properties | text | 用户属性 |
puid | text | 用户账号 |
mobile | text | 手机号 |
text | 邮箱 | |
custom_properties | jsonb | 自定义属性 |
login_timestamp | bigint | 登录时间戳 |
ds | text | 日期(分区) |
用户属性表为全量表,每日更新(T+1)
查询用户表时需要携带ds条件,且ds条件需要为昨天,例如ds='20231227'
1.2.3 分群明细表(uapp_user_group_view)
字段 | 类型 | 字段说明 |
app_key | text | 应用appkey |
group_id | text | 分群id |
umid | text | 友盟umid |
ds | text | 日期(分区) |
用户分群表(即一堆umid设备用户的集合),分群一般分例行人群和单次计算人群,由于数据存储周期原因,分群的umid设备明细会有不同的存储周期策略。单次计算的人群明细保留最近1095天,例行计算的人群明细保留最近30天。
查询分群表时候,需要where条件携带ds条件和group_id条件,否则会提示报错。
group_id的值可以通过如下路径获取:分析-> 行为洞察 -> 自定义分析 -> 元数据 -> 分群ID列 。
1.3 查询范围
时间范围:近一个月(不含今天)
数据范围:事件表、用户表、分群明细表(例行分群30天明细、单次分群1095天明细)
1.4 支持能力
支持以下能力
支持SQL的保存、另存为、更新、历史已存SQL展示(最近100条)
支持SQL的最近历史记录查询(最近300条)
支持元数据的展示(即用户分群),可以快速找到分群ID(group_id),元数据列表当前只展示已计算完成,且存储生命周期在有效期的内的,详细见1.3查询范围
支持不同用户等级的查询次数额度限制(免费版5次/天、专业版10次/天、尊享版20次/天),额度每天0晨重置,如有特殊需求和个性化查询额度需求,可联系客服
2. 函数列表
count | abs | min | max | sum |
floor | avg | log | mod | power |
random | distinct | sqrt | to_number | get_json_object(请注意说明) |
replace | regexp_replace | row_to_json | to_char | to_date |
to_timestamp | dateadd | datediff | now | last_day |
nullif | exp | ceil | least | ln |
row_number | sqrt |
当前仅支持以上函数(兼容PgSQL语法),更多函数敬请期待。
使用json函数注意事项:
旧函数:get_json_object 函数仅支持在uapp_umid_users_view表中查询使用。
新语法:event_kv_json ->> '您的json内字段' 仅支持在uapp_event_view表中查询使用。
3. 错误类型
错误码 | 错误描述 | 说明 |
30000101X | 不允许使用*,请显式指定列名 | 请显式指定列名 |
300001018 | 只支持查询语句 | 当前仅支持简单的select语句 |
300001019 | 暂不支持union | |
300001020 | 暂不支持join | |
300001021 | 暂不支持子查询 | |
300001022 | SQL中不支持该表 | |
300001023 | 未找到表名或不支持此操作 | |
300001024 | 未匹配到正确的表名 | |
300001025 | 缺少ds条件 | |
300001026 | SQL不存在 | |
300001027 | 您无权操作此SQL | |
300001028 | 应用不存在 | |
300001029 | 您无权操作此应用 | |
300001031 | 暂不支持此函数使用 | |
300001032 | 请求太频繁 | 建议合理控制查询频率 |
300001033 | 今日查询额度已不足(联系客服) | 免费版5次/天,专业版10次/天,尊享版20次/天 |
300001034 | 仅支持部分函数(详细函数支持能力见说明文档) | |
300001035 | where缺少group_id条件 | |
300001036 | sql文本过长(含注释),最多限制2000字符 | 建议合理控制SQL长度,避免大SQL出现,影响查询RT |
300001037 | 敏感关键字禁止使用 | sql中包含了被禁止使用的关键字等 |
... | ... | ... |
4. 常见用法举例
根据userid查询用户在某一天的行为
SELECT userid,event_name,event_kv_json FROM uapp_event_view
WHERE
userid = '218' and
ds = '20231213' LIMIT 100;查询在某一时间段内的某个事件的发生总量
SELECT count(event_name) FROM uapp_event_view
WHERE
event_name = 'ID1'
and userid = '218'
and ds >= '20231213' and ds <= '20231215'
limit 100;查询某个分群(group_id)的用户设备明细
select app_key,umid from uapp_user_group_view
where
ds='20231227' and
group_id='pre_ug_o_00000_bfCSh_1xxxxxxxx';步骤:先到元数据找到自己的分群ID,然后复制某个分群ID的值,然后在sql中拼写group_id的查询条件即可
找分群ID

查询结果

5. FAQ
问题1:怎么知道我每天可以使用的查询次数和已用次数?
答:亲,可以到 设置 -> 我的配额 -> 自定义SQL分析 查看

问题2:为什么元数据的分群会比 用户洞察->用户分群 中展示的分群少?
答:亲,为了提升SQL自定义分析的查询体验,我们在元数据的用户分群这里只展示了已计算完成的分群,同时只保留了有有效分群明细的用户分群(数据存储周期原因)
问题3:为什么查询结果只展示500条?想要更多数据怎么办?
答:亲,为了避免查询结果集过多,造成SQL查询超时情况,目前只限制展示500条数据。如果有对更大的数据的查询需求和导出需求,欢迎使用DOP(数据返还)产品 链接 ,或通过客服提交需求
