google-bigquery - 大查询 - 字符串函数
问题描述
我是 BigQuery 平台的新手,我想使用以下字符串
SOCKETIOEXCEPTION##APS.COM, NULLPOINTEREXCEPTION##RSJAVA.COM, CLASSCASTEEXCEPTION##MPS.COM
结果得到这个:SOCKETIOEXCEPTION, NULLPOINTEREXCEPTION, CLASSCASTEEXCEPTION
在##
字符之前,我想从给定的字符串中分离出来,然后我想按上述标签中可用的行数进行分组,例如SOCKETIOEXCEPTION, NULLPOINTEREXCEPTION, CLASSCASTEEXCEPTION
示例数据库详细信息
如何编写此查询?
解决方案
以下是 BigQuery 标准 SQL
#standardSQL
SELECT SPLIT(line, '##')[OFFSET(0)] type, COUNT(1) cnt
FROM `project.dataset.table`
GROUP BY type
您可以使用您问题中的示例数据进行测试,使用上面的示例数据,如下例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'SOCKETIOEXCEPTION##111' line UNION ALL
SELECT 'SOCKETIOEXCEPTION##222' UNION ALL
SELECT 'SOCKETIOEXCEPTION##333' UNION ALL
SELECT 'NULLPOINTEREXCEPTION##444' UNION ALL
SELECT 'NULLPOINTEREXCEPTION##555' UNION ALL
SELECT 'CLASSCASTEEXCEPTION##666' UNION ALL
SELECT 'CLASSCASTEEXCEPTION##777' UNION ALL
SELECT 'CLASSCASTEEXCEPTION##888'
)
SELECT SPLIT(line, '##')[OFFSET(0)] type, COUNT(1) cnt
FROM `project.dataset.table`
GROUP BY type
结果
Row type cnt
1 SOCKETIOEXCEPTION 3
2 NULLPOINTEREXCEPTION 2
3 CLASSCASTEEXCEPTION 3
推荐阅读
- macos - `tmux` 的 OSX Terminal.app 中的替代/重新映射`fn` 键
- javascript - javascript中的wordpress php在回调成功后工作?
- android - 如何使用 android studio 在 kotlin 代码中添加 try/catch?
- python - 如何使用scrapy在网页中选择选项
- php - Laravel - 如何使用除用户表之外的其他表进行登录?
- php - 通过 API 检查 Google 通讯录数据中的更新
- javascript - Eslint React Hooks 错误:eslint-plugin-react-hooks 对 useEffect 中的函数依赖项的详尽 deps 警告
- android - 如何向视图持有者添加监听器以防止它在不同条件下被回收
- javascript - 如何暂时停止事件keydown监听器?
- anylogic - 如何在 ResourcePool 或 Seize 中设置 Agent 的优先级