【发布时间】:2021-12-21 22:25:01
【问题描述】:
我有一个包含列的表格:itime, service, count。
我可以写这样一个SQL来查询一些结果:
SELECT
toUnixTimestamp(toStartOfMinute(itime)) * 1000 as t,
service,
sum(count)
FROM myTable
WHERE
-- aaa and bbb are two integers
itime BETWEEN toDateTime(aaa) AND toDateTime(bbb)
and service like 'mySvr_%'
GROUP BY
service,
t
ORDER BY t
它按预期工作。
对于service列,内容始终以mySvr_开头,如mySvr_101、mySvr_102、mySvr_201、mySvr_202。
现在,我想用一些正则表达式 group by 和 service,这样结果将是 group by,如下所示:mySvr_1xx、mySvr_2xx、mySvr_3xx 等。
但我不知道怎么做。有人可以帮我吗?
【问题讨论】:
-
正则表达式支持是产品特定的功能。你的 DBMS 是什么?
-
@Serg 好吧,事实上我正在研究 Grafana,它可以从 ClickHouse 获取数据。我正在 Grafana 上编写一些 SQL 来可视化 ClickHouse 中的数据。
-
@Yves,你没有使用正则表达式。 Regex 代表正则表达式,您的查询仅包含要在 like 表达式中查找的模式。您确定
%是您的 sql 引擎的正确字符吗? -
@RobertoHernandez 是的,我确定。
标签: sql regex group-by grafana clickhouse