add selectai
This commit is contained in:
@@ -35,38 +35,55 @@ FROM parsed_markdown_files;
|
||||
|
||||
-- merchants
|
||||
SELECT docs.category,
|
||||
docs.name
|
||||
docs.name,
|
||||
docs.payment_processor
|
||||
FROM parsed_markdown_files,
|
||||
JSON_TABLE(data, '$.comercios[*]'
|
||||
COLUMNS (
|
||||
name VARCHAR2(4000) PATH '$.name',
|
||||
category VARCHAR2(4000) PATH '$.category'
|
||||
category VARCHAR2(4000) PATH '$.category',
|
||||
payment_processor VARCHAR2(20) PATH '$.payment_processor'
|
||||
)) docs
|
||||
ORDER BY category, name;
|
||||
|
||||
|
||||
-- beneficios por nivel
|
||||
SELECT docs.nivel,
|
||||
docs.percentual_reintegro,
|
||||
docs.percentual_reintegro,
|
||||
docs.monto_compra_minimo_gs,
|
||||
docs.reintegro_maximo_gs
|
||||
FROM parsed_markdown_files,
|
||||
JSON_TABLE(data, '$.beneficios_por_nivel[*]'
|
||||
COLUMNS (
|
||||
nivel VARCHAR2(100) PATH '$.nivel',
|
||||
percentual_reintegro NUMBER PATH '$.percentual_reintegro',
|
||||
nivel VARCHAR2(20) PATH '$.nivel',
|
||||
percentual_reintegro NUMBER PATH '$.percentual_reintegro',
|
||||
monto_compra_minimo_gs NUMBER PATH '$.monto_compra_minimo_gs',
|
||||
reintegro_maximo_gs NUMBER PATH '$.reintegro_maximo_gs'
|
||||
)) docs
|
||||
ORDER BY 1;
|
||||
|
||||
-- Tabela de benefícios
|
||||
SELECT nivel, percentual_reintegro || '%' AS pct,
|
||||
TO_CHAR(monto_compra_minimo_gs, '999G999G999') AS monto_min,
|
||||
TO_CHAR(reintegro_maximo_gs, '999G999G999') AS reint_max
|
||||
FROM parsed_markdown_files t,
|
||||
JSON_TABLE(t.data, '$.beneficios_por_nivel[*]'
|
||||
COLUMNS (
|
||||
nivel VARCHAR2(20) PATH '$.nivel',
|
||||
percentual_reintegro NUMBER PATH '$.percentual_reintegro',
|
||||
monto_compra_minimo_gs NUMBER PATH '$.monto_compra_minimo_gs',
|
||||
reintegro_maximo_gs NUMBER PATH '$.reintegro_maximo_gs'
|
||||
))
|
||||
ORDER BY nivel DESC;
|
||||
|
||||
-- Comércios por categoria
|
||||
SELECT category, COUNT(*) AS qtd
|
||||
SELECT category, payment_processor, COUNT(*) AS qtd
|
||||
FROM parsed_markdown_files t,
|
||||
JSON_TABLE(t.data, '$.comercios[*]'
|
||||
COLUMNS (
|
||||
category VARCHAR2(200) PATH '$.category'
|
||||
category VARCHAR2(200) PATH '$.category',
|
||||
payment_processor VARCHAR2(20) PATH '$.payment_processor'
|
||||
))
|
||||
GROUP BY category
|
||||
GROUP BY category, payment_processor
|
||||
ORDER BY qtd DESC;
|
||||
|
||||
|
||||
@@ -75,37 +92,9 @@ SELECT
|
||||
docs.data.promocao.titulo.string() as titulo,
|
||||
docs.data.promocao.vigencia.data_inicio || ' a ' || docs.data.promocao.vigencia.data_fim as vigencia,
|
||||
docs.data.medios_pago.rede as rede,
|
||||
docs.data.medios_pago.qr_permitido as qr_permitido
|
||||
docs.data.medios_pago.qr_permitido as qr_permitido,
|
||||
docs.data.cuotas.maximo_sin_intereses as max_sin_intereses,
|
||||
docs.data.acreditacao_reintegro.prazo_dias_habiles as prazo_dias_habiles
|
||||
FROM parsed_markdown_files docs;
|
||||
|
||||
|
||||
|
||||
/* --------------------------------
|
||||
|
||||
DUALITY VIEW
|
||||
|
||||
-------------------------------- */
|
||||
-- convert
|
||||
DECLARE
|
||||
schema_sql clob;
|
||||
BEGIN
|
||||
schema_sql := dbms_json_duality.infer_and_generate_schema(
|
||||
json('{"tableNames" : [ "PARSED_MARKDOWN_FILES" ],
|
||||
"viewNames" : [ "T" ],
|
||||
"useFlexFields" : false,
|
||||
"updatability" : true,
|
||||
"sourceSchema" : "APP_USER"}')
|
||||
);
|
||||
|
||||
execute immediate schema_sql;
|
||||
|
||||
dbms_json_duality.import(table_name => 'PARSED_MARKDOWN_FILES', view_name => 'T');
|
||||
|
||||
execute immediate 'rename T TO V_PARSED_MARKDOWN_FILES';
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
SELECT * FROM T_ROOT;
|
||||
SELECT * FROM T_BENEFICIOS_POR_NIVEL;
|
||||
SELECT * FROM T_COMERCIOS;
|
||||
|
||||
46
lab/json/02_create_duality_view.sql
Normal file
46
lab/json/02_create_duality_view.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
set serveroutput on
|
||||
set long 999999
|
||||
set linesize 200
|
||||
set pagesize 5000
|
||||
|
||||
/* --------------------------------
|
||||
|
||||
DUALITY VIEW
|
||||
|
||||
-------------------------------- */
|
||||
-- convert
|
||||
DECLARE
|
||||
schema_sql clob;
|
||||
BEGIN
|
||||
schema_sql := dbms_json_duality.infer_and_generate_schema(
|
||||
json('{"tableNames" : [ "PARSED_MARKDOWN_FILES" ],
|
||||
"viewNames" : [ "T" ],
|
||||
"useFlexFields" : false,
|
||||
"updatability" : true,
|
||||
"sourceSchema" : "APP_USER"}')
|
||||
);
|
||||
|
||||
execute immediate schema_sql;
|
||||
|
||||
dbms_json_duality.import(table_name => 'PARSED_MARKDOWN_FILES', view_name => 'T');
|
||||
|
||||
execute immediate 'rename T TO V_PARSED_MARKDOWN_FILES';
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
SELECT * FROM T_ROOT;
|
||||
SELECT * FROM T_COMERCIOS;
|
||||
SELECT * FROM T_BENEFICIOS_POR_NIVEL;
|
||||
SELECT * FROM T_ACREDITACAO_REINTEGRO;
|
||||
SELECT * FROM T_CUOTAS;
|
||||
SELECT * FROM T_MEDIOS_PAGO;
|
||||
SELECT * FROM T_PROMOCAO;
|
||||
SELECT * FROM T_VIGENCIA;
|
||||
|
||||
|
||||
-- duality view collection
|
||||
SELECT json_serialize(data returning clob pretty) AS json_data
|
||||
FROM v_parsed_markdown_files;
|
||||
|
||||
Reference in New Issue
Block a user