Project

General

Profile

Comados SQL » History » Version 23

Demo MiGestion365 Admin, 05/13/2026 04:37 PM

1 1 Demo MiGestion365 Admin
# Comados SQL
2
3
4 4 Demo MiGestion365 Admin
### Como crear una nueva tabla
5 1 Demo MiGestion365 Admin
6
CREATE TABLE IF NOT EXISTS aux.bajada_inventario_ext
7
(LIKE aux.bajada_inventario INCLUDING ALL);
8
9
10 5 Demo MiGestion365 Admin
### Búsqueda de un elemento en específico dentro de una tabla
11 1 Demo MiGestion365 Admin
12
SELECT *
13
FROM audit.ci_op_raw
14
WHERE nombre_co = 'SM020101-PATH-20-001886-0000';
15
16 8 Demo MiGestion365 Admin
SELECT *
17
FROM audit.wkt_fibra_raw w
18
WHERE row_to_json(w)::text ILIKE '%TL000201-BHL0-00-018990-0031%';
19
20 1 Demo MiGestion365 Admin
21 5 Demo MiGestion365 Admin
### Contabilizar la cantidad de elementos de una columna con un valor determinado
22 1 Demo MiGestion365 Admin
23
SELECT COUNT(*) AS filas_con_path_atc_nulo
24
FROM aux.bajada_inventario
25
WHERE path_atc IS NULL;
26
27
28 5 Demo MiGestion365 Admin
### Borrar una tabla completa
29 1 Demo MiGestion365 Admin
30
DROP TABLE aux.bajada_inventario_ext;
31
32
33 5 Demo MiGestion365 Admin
### Agregar la columna path_atc si no existe
34 1 Demo MiGestion365 Admin
35
ALTER TABLE aux.bajada_inventario_ext
36
ADD COLUMN IF NOT EXISTS path_atc text;
37
38
39 5 Demo MiGestion365 Admin
### Borrar una columna de una tabla
40 1 Demo MiGestion365 Admin
41
ALTER TABLE aux.bajada_inventario DROP COLUMN atc_path;
42
43
44 5 Demo MiGestion365 Admin
### Poblado de contenido en una tabla
45 1 Demo MiGestion365 Admin
46
        UPDATE aux.bajada_inventario AS b
47
        SET path_atc = i.path_atc
48
        FROM cm.inventory_fat_occupation AS i
49
        WHERE i.physical_path = b.fibra_f01_f02_f03;
50 6 Demo MiGestion365 Admin
51 7 Demo MiGestion365 Admin
### Comandos relacionados con la funcion huella_cometario
52 6 Demo MiGestion365 Admin
53
SELECT * FROM giscloud.huella_comentario('teco|telco|telecon|telecom');
54 9 Demo MiGestion365 Admin
55
56 11 Demo MiGestion365 Admin
### 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.
57 9 Demo MiGestion365 Admin
58
SELECT DISTINCT
59
    op.nombre_sn_co,
60
    op.nombre_co_claro,
61
    inv.path_atc
62
FROM cm.ci_op op
63
JOIN cm.inventory_fat_occupation inv
64
    ON inv.physical_path = op.nombre_sn_co
65
WHERE op.nombre_co_claro IS DISTINCT FROM inv.path_atc;
66 10 Demo MiGestion365 Admin
67
68 11 Demo MiGestion365 Admin
### 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
69 10 Demo MiGestion365 Admin
70
SELECT DISTINCT
71
    nombre_sn_co,
72
    nombre_co_claro,
73
    nombre_co_atc
74
FROM cm.ci_op
75
WHERE nombre_co_claro IS DISTINCT FROM nombre_co_atc;
76 12 Demo MiGestion365 Admin
77
78
### 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 
79
80
Restricciones:
81
82
Restriccion 1:  si los dígitos 5 y 6 de nombre_sn_co 
83
es 02 es CLARO, si es 01 es ATC
84
85
Restriccion 2: si es CLARO hay que comprar los dígitos 7,8,9,10 de nombre_co_claro
86
con los ultimos 4 dígitos de path_atc. Si son distintos, lo agrego en la tabla de resultado.
87
88
Restricción 3: Si es ATC hay que comparar los dígitos 15,16,17,18 de nombre_co_claro
89
con los ultimos 4 dígitos de path_atc. Si son distintos, lo agrego en la tabla de resultado.
90
91
SELECT DISTINCT
92
    op.nombre_sn_co,
93
    op.nombre_co_claro,
94
    inv.path_atc
95
FROM cm.ci_op op
96
JOIN cm.inventory_fat_occupation inv
97
    ON inv.physical_path = op.nombre_sn_co
98
WHERE
99
    (
100
        SUBSTRING(op.nombre_sn_co, 5, 2) = '02'  -- CLARO
101
        AND SUBSTRING(op.nombre_co_claro, 7, 4) IS DISTINCT FROM SUBSTRING(inv.path_atc FROM '(\d{4})$')
102
    )
103
    OR
104
    (
105
        SUBSTRING(op.nombre_sn_co, 5, 2) = '01'  -- ATC
106
        AND SUBSTRING(op.nombre_co_claro, 15, 4) IS DISTINCT FROM SUBSTRING(inv.path_atc FROM '(\d{4})$')
107
    );
108 13 Demo MiGestion365 Admin
109
110
### 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
111
112
Se toman las siguientes restricciones
113
114
Restriccion 1:  si los dígitos 5 y 6 de nombre_sn_co 
115
es 02 es CLARO, si es 01 es ATC
116
117
Restriccion 2: si es CLARO hay que comprar los dígitos 7,8,9,10 de nombre_co_claro
118
con los dígitos 20, 21, 22 y 23 de nombre_sn_co
119
. Si son distintos, lo agrego en la tabla de resultado.
120
121
Restricción 3: Si es ATC hay que comparar los dígitos 15,16,17,18 de nombre_co_claro
122
con los dígitos 20, 21, 22 y 23 de nombre_sn_co. Si son distintos, lo agrego en la tabla de resultado.
123
124
Restricción 4: Se toman solo Gpon, por lo que topología debe comenzar con G
125
126
SELECT DISTINCT
127
    nombre_sn_co,
128
    nombre_co_claro
129
FROM cm.ci_op
130
WHERE
131
    topologia LIKE 'G%'          -- Nueva restricción
132
    AND (
133
            SUBSTRING(nombre_sn_co, 5, 2) = '02'  -- CLARO
134
            AND SUBSTRING(nombre_co_claro, 7, 4) IS DISTINCT FROM SUBSTRING(nombre_sn_co, 20, 4)
135
        )
136
    OR (
137
            topologia LIKE 'G%'                  -- Necesario repetir por precedencia lógica
138
            AND SUBSTRING(nombre_sn_co, 5, 2) = '01'  -- ATC
139
            AND SUBSTRING(nombre_co_claro, 15, 4) IS DISTINCT FROM SUBSTRING(nombre_sn_co, 20, 4)
140
        );
141 14 Demo MiGestion365 Admin
142
###  Query para sacar todas las diferencias de lo que está en feeder_distribution y NO está en wkt_fibra_raw
143
144
SELECT cfd.*
145
FROM cm.ci_feeder_distribution AS cfd
146
WHERE NOT EXISTS (
147
    SELECT 1
148
    FROM audit.wkt_fibra_raw AS wfr
149
    WHERE wfr."cable name" = cfd.id_cm
150
);
151 15 Demo MiGestion365 Admin
152
153 19 Demo MiGestion365 Admin
###  Query para contabilizar la cantidad de elementos de las diferentes tablas de sn
154
155
DO $$
156
DECLARE
157
    r RECORD;
158
BEGIN
159
    CREATE TEMP TABLE tmp_table_counts (
160
        table_name text,
161
        row_count bigint
162
    ) ON COMMIT DROP;
163
164
    FOR r IN
165
        SELECT tablename
166
        FROM pg_tables
167
        WHERE schemaname = 'sn'
168
    LOOP
169
        EXECUTE format(
170
            'INSERT INTO tmp_table_counts
171
             SELECT %L, COUNT(*) FROM sn.%I',
172
            r.tablename,
173
            r.tablename
174
        );
175
    END LOOP;
176
END $$;
177
178
SELECT *
179
FROM tmp_table_counts
180
ORDER BY table_name;
181
182 15 Demo MiGestion365 Admin
### Cómo sacar por log los prints de lo que va ejecutando un script .sh
183
/usr/bin/python3.10 huella_telecom_16012026.py  >> huella_telecom_load.log 2>&1
184
Con un signo > envía la salida al archivo, y con dos >> manda en modo append la salida al archivo
185 16 Demo MiGestion365 Admin
186
### Cómo encontrar un string dentro de mi carpeta y subcarpetas (evitando carpetas con nombre old)
187
grep -Rni --include="*.py" --exclude-dir='*old*' "serial" 
188 17 Demo MiGestion365 Admin
189
### Cómo encontrar el create o carga de datos de una tabla dentro de mi carpeta y subcarpetas (evitando carpetas con nombre old)
190
grep -Rni --include="*.py" --exclude-dir='Old' 'sn."case"' .
191 18 Demo MiGestion365 Admin
192
### Cómo encontrar un string dentro de un archivo tipo json 
193
jq '.. | select(type=="string" and contains("JP000401-FOSC-00-020417-0001"))' file2-tmp.json
194 20 Demo MiGestion365 Admin
195
196 23 Demo MiGestion365 Admin
### Comando sql para ver las actividades de postgres SOS
197 20 Demo MiGestion365 Admin
select * from pg_stat_activity
198 21 Demo MiGestion365 Admin
199 22 Demo MiGestion365 Admin
SELECT pid, state, wait_event, query
200
FROM pg_stat_activity
201
WHERE state <> 'idle';
202 1 Demo MiGestion365 Admin
203 23 Demo MiGestion365 Admin
204 21 Demo MiGestion365 Admin
### Comando en Linux para reiniciar postgres
205 1 Demo MiGestion365 Admin
sudo service postgresql restart
206 23 Demo MiGestion365 Admin
207
208
### Comando SQL indica sesiones tomadas
209
SELECT
210
  pid, usename, state, now() - xact_start AS tx_duration, wait_event_type, wait_event, query
211
FROM pg_stat_activity
212
WHERE xact_start IS NOT NULL
213
ORDER BY xact_start;