Comados SQL » History » Revision 15
Revision 14 (Demo MiGestion365 Admin, 02/09/2026 05:22 PM) → Revision 15/17 (Demo MiGestion365 Admin, 02/19/2026 03:06 PM)
# Comados SQL
### Como crear una nueva tabla
CREATE TABLE IF NOT EXISTS aux.bajada_inventario_ext
(LIKE aux.bajada_inventario INCLUDING ALL);
### Búsqueda de un elemento en específico dentro de una tabla
SELECT *
FROM audit.ci_op_raw
WHERE nombre_co = 'SM020101-PATH-20-001886-0000';
SELECT *
FROM audit.wkt_fibra_raw w
WHERE row_to_json(w)::text ILIKE '%TL000201-BHL0-00-018990-0031%';
### Contabilizar la cantidad de elementos de una columna con un valor determinado
SELECT COUNT(*) AS filas_con_path_atc_nulo
FROM aux.bajada_inventario
WHERE path_atc IS NULL;
### Borrar una tabla completa
DROP TABLE aux.bajada_inventario_ext;
### Agregar la columna path_atc si no existe
ALTER TABLE aux.bajada_inventario_ext
ADD COLUMN IF NOT EXISTS path_atc text;
### Borrar una columna de una tabla
ALTER TABLE aux.bajada_inventario DROP COLUMN atc_path;
### Poblado de contenido en una tabla
UPDATE aux.bajada_inventario AS b
SET path_atc = i.path_atc
FROM cm.inventory_fat_occupation AS i
WHERE i.physical_path = b.fibra_f01_f02_f03;
### Comandos relacionados con la funcion huella_cometario
SELECT * FROM giscloud.huella_comentario('teco|telco|telecon|telecom');
### Query que me devuelve valores unicos de las lines en las que la columna nombre_co_claro de la tabla cm.ci_op es diferente de la columna path_atc de la tabla cm.inventory_fat_occupation.
SELECT DISTINCT
op.nombre_sn_co,
op.nombre_co_claro,
inv.path_atc
FROM cm.ci_op op
JOIN cm.inventory_fat_occupation inv
ON inv.physical_path = op.nombre_sn_co
WHERE op.nombre_co_claro IS DISTINCT FROM inv.path_atc;
### Query que me devuelve listado de valores unicos de registros de la tabla cm.ci_op en la que los valores de las columnas nombre_co_claro y nombre_co_atc son diferentes
SELECT DISTINCT
nombre_sn_co,
nombre_co_claro,
nombre_co_atc
FROM cm.ci_op
WHERE nombre_co_claro IS DISTINCT FROM nombre_co_atc;
### Query que me devuelve listado de valores unicos de registros de la tabla cm.ci_op en la que los valores de las columnas nombre_co_claro y nombre_co_atc son diferentes
Restricciones:
Restriccion 1: si los dígitos 5 y 6 de nombre_sn_co
es 02 es CLARO, si es 01 es ATC
Restriccion 2: si es CLARO hay que comprar los dígitos 7,8,9,10 de nombre_co_claro
con los ultimos 4 dígitos de path_atc. Si son distintos, lo agrego en la tabla de resultado.
Restricción 3: Si es ATC hay que comparar los dígitos 15,16,17,18 de nombre_co_claro
con los ultimos 4 dígitos de path_atc. Si son distintos, lo agrego en la tabla de resultado.
SELECT DISTINCT
op.nombre_sn_co,
op.nombre_co_claro,
inv.path_atc
FROM cm.ci_op op
JOIN cm.inventory_fat_occupation inv
ON inv.physical_path = op.nombre_sn_co
WHERE
(
SUBSTRING(op.nombre_sn_co, 5, 2) = '02' -- CLARO
AND SUBSTRING(op.nombre_co_claro, 7, 4) IS DISTINCT FROM SUBSTRING(inv.path_atc FROM '(\d{4})$')
)
OR
(
SUBSTRING(op.nombre_sn_co, 5, 2) = '01' -- ATC
AND SUBSTRING(op.nombre_co_claro, 15, 4) IS DISTINCT FROM SUBSTRING(inv.path_atc FROM '(\d{4})$')
);
### Query que me devuelve un listado de registros de la tabla cm.ci_op en la que los valores de las columnas nombre_sn_co y nombre_co_claro son diferentes
Se toman las siguientes restricciones
Restriccion 1: si los dígitos 5 y 6 de nombre_sn_co
es 02 es CLARO, si es 01 es ATC
Restriccion 2: si es CLARO hay que comprar los dígitos 7,8,9,10 de nombre_co_claro
con los dígitos 20, 21, 22 y 23 de nombre_sn_co
. Si son distintos, lo agrego en la tabla de resultado.
Restricción 3: Si es ATC hay que comparar los dígitos 15,16,17,18 de nombre_co_claro
con los dígitos 20, 21, 22 y 23 de nombre_sn_co. Si son distintos, lo agrego en la tabla de resultado.
Restricción 4: Se toman solo Gpon, por lo que topología debe comenzar con G
SELECT DISTINCT
nombre_sn_co,
nombre_co_claro
FROM cm.ci_op
WHERE
topologia LIKE 'G%' -- Nueva restricción
AND (
SUBSTRING(nombre_sn_co, 5, 2) = '02' -- CLARO
AND SUBSTRING(nombre_co_claro, 7, 4) IS DISTINCT FROM SUBSTRING(nombre_sn_co, 20, 4)
)
OR (
topologia LIKE 'G%' -- Necesario repetir por precedencia lógica
AND SUBSTRING(nombre_sn_co, 5, 2) = '01' -- ATC
AND SUBSTRING(nombre_co_claro, 15, 4) IS DISTINCT FROM SUBSTRING(nombre_sn_co, 20, 4)
);
### Query para sacar todas las diferencias de lo que está en feeder_distribution y NO está en wkt_fibra_raw
SELECT cfd.*
FROM cm.ci_feeder_distribution AS cfd
WHERE NOT EXISTS (
SELECT 1
FROM audit.wkt_fibra_raw AS wfr
WHERE wfr."cable name" = cfd.id_cm
);
### Cómo sacar por log los prints de lo que va ejecutando un script .sh
/usr/bin/python3.10 huella_telecom_16012026.py >> huella_telecom_load.log 2>&1
Con un signo > envía la salida al archivo, y con dos >> manda en modo append la salida al archivo