数据开发治理平台 WeData 查询指标数据

select * from query(model=’模型名称’,metric=[指标名称列表], group_by=[TimeDimension(日期维度名称,day),Dimension(维度名称)], where=[Dimension(维度名称)=’维度值’ AND TimeDimension(日期维度名称,day)=’维度值’],order_by=[TimeDimension(日期维度名称,grain) de。

相关产品
数据开发治理平台 WeData 产品页,含版本规格、价格与购买入口。

一、完整语法

为方便后续语句举例说明,假设:

·定义模型:order_model

·定义指标:30daysOrderAmount

·维度:product_name,取值(p001,p002)

·性别:gender,取值(Female,Male)

·时间维度:order_date,时间粒度为 day

二、函数

为了区分指标、普通维度、时间维度,SemQL 语句需要用不同函数标注处理。

三、Dimension 函数

Dimension(维度英文名)

四、TimeDimension 函数

TimeDimension(日期维度英文名,grain)

当模型中仅有一个时间维度时,可用关键字 TimeOutput 代替真实的日期维度名称,即 TimeOutput(grain)

参数 grain 为时间粒度,可选值:year,quarter,month,week,day,hour,minute,second。

五、Metric 函数

TimeDimension(指标英文名,Dimension(维度英文名))

Dimension 函数可以有多个,例如:TimeDimension(指标英文名,Dimension(维度英文名1),Dimension(维度英文名2))

六、metric 语句

METRIC 用来指定查询哪个指标,参数值为指标的英文名,多个指标用英文逗号分隔。

句法:

select * from query(metric=[指标1,指标2,指标3], group_by=[Dimension(维度1),Dimension(维度2)],limit=10)

示例:

–获取指标metric(30daysOrderAmount)的10条数据SELECT * FROM query(metric=[30daysOrderAmount],limit=10)

七、where 语句

where 子句用于指定 SQL 查询中数据的筛选条件,只返回满足条件的结果。

支持的操作符:

·= 等于

·<> 不等于

·> 大于

·< 小于

·>= 大于等于

·<= 小于等于

·BETWEEN … AND … 在范围之间

·IN (…) 在列表中

·LIKE '模式' 模糊匹配

·IS NULL 判空

·AND、OR 逻辑与/或

·NOT 逻辑非

句法:

–where语句后可跟多个表达式,多个表达式之间默认连接逻辑为ANDselect * from query(metric=[指标1], where=[表达式1,表达式2)–也可只跟一个表达式,表达式中包含AND/OR连接逻辑,注意与上面的区别select * from query(metric=[指标1], where=[表达式1 AND 表达式2 or 表达式3)

示例:

–获取2025年指标metric(30daysOrderAmount),男性购买的商品名称包含洗发的数据,product_name分组SELECT * FROM query(metric=[30daysOrderAmount],group_by=[Dimension(product_name)], where=[Dimension(product_name) like '%s洗发%s' and Dimension(gender) in ('Male')])–上面的语句也可写为SELECT * FROM query(metric=[30daysOrderAmount],group_by=[Dimension(product_name)], where=[Dimension(product_name) like '%s洗发%s',Dimension(gender) in ('Male')])

八、model 语句

model 用来指定查询哪个模型,仅查询维度值且不查询指标时使用该参数,参数值为模型的英文名,与 group_by 语句结合使用,不与 metric 语句共同使用。

句法:

select * from query(model='模型名', group_by=[Dimension(维度1),Dimension(维度2)])

示例:

–获取2025年男性购买的商品名称数据SELECT * FROM query(model='order_model',group_by=[Dimension(product_name)],where=[Dimension(gender) in ('Male')])

九、group_by 语句

group_by 用于将查询结果按一个或多个字段进行分组,可以跟多个分组,之间用英文逗号分隔开。

参数 grain 为时间粒度,可选值: year, quarter, month, week, day, hour, minute, second。

句法:

SELECT * FROM query(metric=[指标1],group_by=[TimeDimension(日期维度名称,grain),Dimension(维度名称)]])–如果该模型仅有一个时间维度,上述语句也可以写为SELECT * FROM query(metric=[指标1],group_by=[TimeOutput(grain),Dimension(维度名称)]])

示例:

–获取2025年指标metric(30daysOrderAmount)根据性别gender和时间(月)分组数据SELECT * FROM query(metric=[30daysOrderAmount],group_by=[TimeDimension(order_date,month),Dimension(gender)])–如果该模型仅有一个时间维度order_date,上述语句也可以写为SELECT * FROM query(metric=[30daysOrderAmount],group_by=[TimeOutput(month),Dimension(gender)])

十、order_by 语句

order_by 用来指定查询结果的排序方式,可以跟多个排序方式,之间用英文逗号分隔开,默认升序 asc。

参数 grain 为时间粒度,可选值: year, quarter, month, week, day, hour, minute, second。

句法:

SELECT * FROM query(metric=[指标1,指标2],order_by=[TimeDimension(日期维度名称,grain) desc,Dimension(维度名称)]])–如果该模型仅有一个时间维度,上述语句也可以写为SELECT * FROM query(metric=[指标1,指标2],order_by=[TimeOutput(grain) desc,Dimension(维度名称)]])

示例:

–获取2025年指标metric(30daysOrderAmount),product_name分组,性别为男性,并按照order_date倒序,product_name正序进行排序SELECT * FROM query(metric=[30daysOrderAmount],group_by=[Dimension(product_name)],order_by=[TimeDimension(order_date,day) desc,Dimension(product_name)],where=[Dimension(gender)='Male'])–如果该模型仅有一个时间维度,上述语句也可以写为SELECT * FROM query(metric=[30daysOrderAmount],group_by=[Dimension(product_name)],order_by=[TimeOutput(day) desc,Dimension(product_name)],where=[Dimension(gender)='Male'])

十一、limit 语句

limit 用于限定指标查询返回的数据行数,通常用于分页或只取部分数据。

示例:

–查询30daysOrderAmount指标的前5条数据select * from query(metric=[30daysOrderAmount],limit=5)

十二、time_start 语句

time_start 用于限定指标查询的起始时间,时间格式为2010-10-21T00:00:00,如不填,开始时间默认为2010-01-01T00:00:00。

示例:

–获取2025年至今以来指标metric(30daysOrderAmount)的10条数据SELECT * FROM query(metric=[30daysOrderAmount],time_start='2025-01-01T00:00:00',limit=10)

十三、time_end 语句

time_end 用于限定指标查询的结束时间,时间格式为2025-10-21T00:00:00,如不填,结束时间默认为 now()。

示例:

–获取2025年指标metric(30daysOrderAmount)的10条数据SELECT * FROM query(metric=[30daysOrderAmount],time_start='2025-01-01T00:00:00',time_end='2025-12-30T00:00:00',limit=10)

赞 (0)
上一篇 4天前
下一篇 4天前