postgresql - 分析在 postgreSQL 中将文件上传到 API 时产生的错误
问题描述
我正在尝试分析当我们的客户尝试将他们的文件上传到我们的盘子表单时产生的错误,不确定这是否可能使用 PostgreSQL。
我的表有三列company_id
,import_id
和operation_errors
。
我尝试了这个查询,它在有一个错误的行上完美运行,但在大多数情况下,每次导入我有超过 3 个错误,我的查询选择第一个只有第一个错误更多。
SELECT importable_id ,
importable_type ,
substring(lower(replace_operation)
FROM 'title:(.+?)detail:') test
FROM
( SELECT import_id ,
importable_id ,
i.importable_type ,
operation_errors as replace_operation
FROM import_results ir
JOIN imports i ON ir.import_id = i.id
WHERE operation_errors IS NOT NULL
AND i.created_at >= date_trunc('month', CURRENT_DATE :: date)) a
WHERE importable_type = 'Company';
正如我所说,该行可能有一个或多个错误这里是错误消息的一个示例
---
- !ruby/hash:ActiveSupport::xxxxxxxxxxxxxxxx
code: 314
title: xxxxxxxxxxxxxxxxxxxxxxxx.
detail: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx. i.e 21 February, 2018.
source: !ruby/hash:ActiveSupport::xxxxxxxxxxxxxxxxxxxxxxxxx
pointer: "/data/attributes/xxxxxxx"
- !ruby/hash:ActiveSupport::xxxxxxxxxxxxxxxxxxxxxxxxxxx
code: 343
title: xxxxxx xxxxx xxxxxxx xxxxxxxx xxxx
detail: xxxxxx xxxxxxx xxxxxx xxxxxxxx xxxxxxxxxxxxx
xxxxxx xxxxxxxx xxxxx xxxxxxx xxxx xxxxxxxx xxxxxxxxxxx.
source: !ruby/hash:ActiveSupport::xxxxxxxxxxxxxxxxx
pointer: "/data/attributes/xxxxxxxxxxx"
- !ruby/hash:ActiveSupport::
code: 342
title: xxxxx xxxxx xxxxx xxxxxxx xxxxx xxxxxxxxxx xxxxxxxxx xxx
detail: xxxxxx xx xxx xxx xxx xxx xxxx xxxxxxx xxxxx
xxxxxxxxx x xxxxxxx xxxxxxx xx xxxxxx xx xx.
source: !ruby/hash:ActiveSupport::xxxxxxxxxxx
pointer: "/data/attributes/xxxxxxxxxx"
我希望有这样的东西
importable_id errore1 errore 2 errore 3
1 title: xxxxx. title: xxxxx. title: xxxxx.
2 title: xxxxx.
3 itle: xxxxx. title: xxxxx.
我也试过
split_part(replace_operation, ' ', 1) AS col1
但我最终得到了 40 列,但仍然没有在某些行中得到所有错误
解决方案
我设法找到了我的问题的答案谢谢@Andyk
WITH errors AS
(SELECT importable_id ,
importable_type,
created_at ,
substring(lower(replace_operation)
FROM 'code:(.+?)title') code_1 ,
split_part(replace_operation, 'code', 2) AS code_2 ,
split_part(replace_operation, 'title', 2) AS sec_part ,
split_part(split_part(replace_operation, 'title', 2), ':', 2) error_1 ,
split_part(replace_operation, 'title', 3) AS third_part ,
split_part(split_part(replace_operation, 'title', 3), ':', 2) error_2 ,
split_part(replace_operation, 'title', 4) AS f_part ,
split_part(split_part(replace_operation, 'title', 4), ':', 2) error_3 ,
split_part(replace_operation, 'title', 5) AS f_part ,
split_part(split_part(replace_operation, 'title', 5), ':', 2) error_4
FROM
( SELECT import_id ,
importable_id ,
i.importable_type ,
operation_errors AS replace_operation,
i.created_at
FROM import_results ir
JOIN imports i ON ir.import_id = i.id
WHERE operation_errors IS NOT NULL
AND i.created_at >= date_trunc('month', CURRENT_DATE :: date)) a
WHERE importable_type = 'Company')
SELECT importable_id,
created_at::date ,
code_1 ,
error_1 ,
error_2 ,
error_3 ,
error_4
FROM errors
推荐阅读
- networking - 无法访问虚拟机本地主机上的 laravel 项目
- flutter - Flutter MouseRegion onExit 在浏览器边缘附近不起作用
- java - 简化的三元表达式
- rust - 为什么 TryInto 需要 T 中的 Copy 特征?
- github - 无需注册即可参与 Github
- html - 任何可能的方法来右对齐 Flexbox 中图像旁边的文本?
- c++ - 如何在 IF 语句 c++ 中创建“除非条件”
- spring-boot - 是否能够在 Spring 中使用构造函数注入将 RequestScope bean 注入 Singleton bean?
- python - GCP Compute Engine Python API 和实例模板不起作用?
- django - 迁移不适用于 django 和 docker?