update guia_mysql guia_windows

This commit is contained in:
2026-09-20 19:11:44 +02:00
parent 4c1d152391
commit ebd86c5fa3
2 changed files with 233 additions and 203 deletions
+185 -154
View File
@@ -1,107 +1,139 @@
AYUDA MYSQL
\===========
**AYUDA MYSQL**
==================
Acceso consola de mysql/mariadb
```bash
./mysql u- root (si no tiene password)
./mysql u- root -p <password>
```
**Backups mysqldump desde terminal**
```bash
./mysqldump -u root -p nombre_base_datos > backup.sql
./mysqldump -u root -p --all-databases > all_databases_backup.sql
mysqldump -h localhost -u root -p --port=3307 mi_base > backup.sql
# Para establecer puerto 3307
```
**Restaurar un backup mysql/mariadb**
Backups mysqldump desde terminal
```bash
mysql -u root -p nombre_base_datos < backup.sql
mysql -h localhost -u usuario -p --port=3307 nombre_base < backup.sql
# Estableciendo puerto
```
*Restaurara base_b*
```bash
sudo mysql
CREATE DATABASE base_b CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;
```
`mysql -u root -p base_b < /home/usuario/base_b.sql`
Te pedirá la contraseña del usuario root de MySQL.
Si en Ubuntu tienes configurado MySQL para que root entre mediante autenticación del sistema y no mediante contraseña, puedes hacerlo así:
`sudo mysql base_b < /home/usuario/base_b.sql`
**Resturar archivo comprimido .sql.gz**
Comprobar si el backup tiene CREATE DATABASE:
opcion 1: zgrep -i "CREATE DATABASE" /home/usuario/base_b.sql.gz
opcion 2: zcat base_b_20260920.sql.gz | head -30
opcion 3: head -30 base_b.sql
Si no tiene sentencia CREATE DATABASE:
(no es necesario descomprimir primero usando zcat o gzip -dc)
```bash
sudo mysql -e "CREATE DATABASE base_b CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
zcat /home/usuario/base_b.sql.gz | sudo mysql base_b
```
comprobar que ha terminado
`echo $? #debe devolver 0`
Comprobar las tablas
opcion 1:
`sudo mysql -e "USE base_b; SHOW TABLES;"`
opcion 2:
```bash
sudo mysql
#Después:
USE base_b;
SHOW TABLES;
#Y para comprobar cuántas tablas hay:
SELECT COUNT(*) FROM information_schema.tables
WHERE table_schema = 'base_b';
```
Si el backup SI tiene sentencia CREATE DATABASE Y USE "base_b", directamente:
`zcat /home/usuario/base_b.sql.gz | sudo mysql base_b`
En resumen
| El dump contiene|Comando |
|-----------------|--------|
| CREATE DATABASE + USE base_b| zcat backup.sql.gz \| sudo mysql|
|No contiene CREATE DATABASE |Crear base_b primero y luego zcat backup.sql.gz \| sudo mysql base_b |
**Comandos desde consola mysql/mariadb**
| comando | accion |
|---------| :--------|
| show databases; | Mostrar bases de datos |
| use database_name;| Seleccionar base de datos|
| drop database database_name| Borrar base de datos|
| create database database_name| Crear base de datos| 
| DROP USER 'juan'@'localhost'; | Borrar usuario|
| DROP USER 'juan'@'%'; | Si el usuario se conecta desde cualquier host (%):|
| SELECT user, host FROM mysql.user;| Ver usuarios|
./mysqldump -u root -p nombre\_base\_datos > backup.sql
./mysqldump -u root -p --all-databases > all\_databases\_backup.sql
mysqldump -h localhost -u root -p --port=3307 mi\_base > backup.sql Para establecer puerto 3307
Restaurar un backup mysql/mariadb
Terminal del sistema operativo
mysql -u root -p nombre\_base\_datos < backup.sql
mysql -h localhost -u usuario -p --port=3307 nombre\_base < backup.sql Estableciendo puerto
Consola mysql/mariadb
show databases; Mostrar bases de datos
use database\_name; Seleccionar base de datos
drop database database\_name Borrar base de datos
create database database\_name Crear base de datos
DROP USER 'juan'@'localhost'; Borrar usuario
DROP USER 'juan'@'%'; Si el usuario se conecta desde cualquier host (%):
SELECT user, host FROM mysql.user; Ver usuarios
Modificar tablas a InnoDb
SELECT CONCAT('ALTER TABLE ', table\_name, ' ENGINE=InnoDB;')
FROM information\_schema.tables
WHERE table\_schema = 'nombre\_base\_datos' AND engine = 'MyISAM';
Luego ejecutas las sentencias generadas.
**Modificar tablas a InnoDb**
```bash
SELECT CONCAT('ALTER TABLE ', table_name, ' ENGINE=InnoDB;')
FROM information_schema.tables
WHERE table_schema = 'nombre_base_datos' AND engine = 'MyISAM';
#Luego ejecutas las sentencias generadas.
ALTER TABLE tabasunto ENGINE=InnoDB;
ALTER TABLE tabmodus ENGINE=InnoDB;
ALTER TABLE tabobjetos ENGINE=InnoDB;
ALTER TABLE taboficios ENGINE=InnoDB;
ALTER TABLE tabdetenpol ENGINE=InnoDB;
ALTER TABLE tabusers ENGINE=InnoDB;
ALTER TABLE tabregistro ENGINE=InnoDB;
```
**Usar mysqldump en linux con Xampp**
Usar mysqldump en linux con Xampp
/opt/lampp/bin/mysqldump -u [usuario] -p [nombre_base_de_datos] > [archivo_salida.sql]
/opt/lampp/bin/mysqldump -u [usuario] -p [nombre\_base\_de\_datos] > [archivo\_salida.sql]
gzip ~/copia\_seguridad\_mi\_basedatos.sql Comprimir la copia de seguridad
gzip ~/copia_seguridad_mi_basedatos.sql Comprimir la copia de seguridad
export PATH=/opt/lampp/bin:$PATH Activar mysqldump en el PATH
mysqldump -u root -p mi\_basedatos > ~/copia\_seguridad.sql
mysqldump -u root -p mi_basedatos > ~/copia_seguridad.sql
PhpMyAdmin
Aumentar liminte de carga. Editar php.ini (/etc/php/ c:\xampp\php)
**PhpMyAdmin**
Aumentar liminte de carga. Editar php.ini (/etc/php/ c:xamppphp)
modificar los valores:
upload\_max\_filesize = 2000M
post\_max\_size = 2000M
max\_execution\_time = 300
max\_input\_time = 300
upload_max_filesize = 2000M
post_max_size = 2000M
max_execution_time = 300
max_input_time = 300
Reiniciar apache
sudo systemctl restart apache2 Linux
---
Poner en mayusculas / minusculas
UPDATE productos SET categoria = UPPER(categoria); (actualizar)
SELECT id, UPPER(nombre) AS nombre\_mayusculas FROM categorias; (solo visualizar)
UPDATE productos SET categoria = UPPER(categoria);
SELECT id, UPPER(nombre) AS nombre_mayusculas FROM categorias; (solo visualizar)
UPDATE tabla SET columna = LOWER(columna);
@@ -111,7 +143,7 @@ UPPER(SUBSTRING(columna, 1, 1)), -- Primera letra en mayúscula
LOWER(SUBSTRING(columna, 2)) -- Resto en minúsculas
SELECT nombre, CONCAT(UPPER(SUBSTRING(nombre, 1, 1)), LOWER(SUBSTRING(nombre, 2))) AS nombre\_formateado
SELECT nombre, CONCAT(UPPER(SUBSTRING(nombre, 1, 1)), LOWER(SUBSTRING(nombre, 2))) AS nombre_formateado
FROM categorias; (solo visualizacion select)
@@ -128,34 +160,33 @@ Guardar datos de una tabla a otra en diferente base de datos.
INSERT INTO db1.tabla (rut, apellido, nombre, sexo) SELECT rut, apellido, nombre, sexo FROM dbo2.tabla;
Insert into db1.tabla select \* from db2.tabla; (ambas tablas tienen que tener la misma estructura).
Insert into db1.tabla select * from db2.tabla; (ambas tablas tienen que tener la misma estructura).
Actualizar datos tabla
UPDATE tabla\_nombre SET column1 = value1, column2 = value2 … WHERE condicion;
UPDATE tabla_nombre SET column1 = value1, column2 = value2 … WHERE condicion;
UPDATE tabla\_nombre SET column1 = value1, column2 = value2 … WHERE condicion LIKE ‘%hola%’;
UPDATE tabla_nombre SET column1 = value1, column2 = value2 … WHERE condicion LIKE ‘%hola%’;
Insertar datos en campo/s desde otra tabla
INSERT INTO tabDestino (column1, column2) SELECT columnX, columnY FROM tabOrigen;
SELECT
SELECT \* FROM tabregistro WHERE registro NOT LIKE '%/%' AND fechaent BETWEEN '2020-01-01' and '2020-12-31'
SELECT * FROM tabregistro WHERE registro NOT LIKE '%/%' AND fechaent BETWEEN '2020-01-01' and '2020-12-31'
SELECT \* FROM tabregistro WHERE fechaent BETWEEN '2020-01-01' AND '2020-12-31'
SELECT * FROM tabregistro WHERE fechaent BETWEEN '2020-01-01' AND '2020-12-31'
UPDATE
UPDATE oeste\_oficios SET grupo = 'oeste';
UPDATE oeste_oficios SET grupo = 'oeste';
UPDATE tabregistro SET procedencia = 'ODAC Central' WHERE procedencia = 'I.C.G.'; UPDATE centro\_detenpol SET padres = CONCAT (padre,' - ',madre);
UPDATE tabregistro SET procedencia = 'ODAC Central' WHERE procedencia = 'I.C.G.'; UPDATE centro_detenpol SET padres = CONCAT (padre,' - ',madre);
UPDATE centro\_detenpol SET nacFecha = CONCAT (año,mes,dia);
UPDATE centro_detenpol SET nacFecha = CONCAT (año,mes,dia);
UPDATE centro\_registro SET grupo = 'centro';
UPDATE centro_registro SET grupo = 'centro';
ACTUALIZAR O MODIFICAR LOS ID
@@ -163,19 +194,19 @@ SET @COUNT = 200000;
UPDATE tabregistro SET tabregistro.id = @count:= @count + 1;
ALTER TABLE tabregistro AUTO\_INCREMENT=1
ALTER TABLE tabregistro AUTO_INCREMENT=1
ACTUALIZAR SQLITE AÑADIENDO EL AÑO SQLITE
UPDATE tab\_detenidos set atestado = atestado || '/' ||
UPDATE tab_detenidos set atestado = atestado || '/' ||
SUBSTR(CAST(strftime('%Y',fecha\_hora) AS TEXT), 3, 2)
SUBSTR(CAST(strftime('%Y',fecha_hora) AS TEXT), 3, 2)
WHERE atestado NOT LIKE '%/' || SUBSTR(CAST(STRFTIME('%Y', fecha\_hora) AS TEXT), 3, 2);
WHERE atestado NOT LIKE '%/' || SUBSTR(CAST(STRFTIME('%Y', fecha_hora) AS TEXT), 3, 2);
QUITAR EL AÑO
UPDATE tab\_detenidos2 SET atestado = SUBSTR(atestado, 1, LENGTH(atestado) -3) WHERE atestado LIKE "%/%"
UPDATE tab_detenidos2 SET atestado = SUBSTR(atestado, 1, LENGTH(atestado) -3) WHERE atestado LIKE "%/%"
CONCAT
@@ -183,15 +214,15 @@ UPDATE tabregistro SET juzgado=CONCAT(tipoDoc,' ',operacion) where id='1'
En sqlite en lugar de CONCATE se utiliza ||
UPDATE funcionarios\_agp SET nombre\_comp = (NOMBRE || ' ' || APELLIDOS) where dni='11111111'
UPDATE funcionarios_agp SET nombre_comp = (NOMBRE || ' ' || APELLIDOS) where dni='11111111'
CONTAR NUMERO DE FILAS DE UNA TABLA
SELECT COUNT(\*) FROM contactos;
SELECT COUNT(*) FROM contactos;
DUPLICAR TABLA
CREATE TABLE tabla\_nueva LIKE tabla\_original;
CREATE TABLE tabla_nueva LIKE tabla_original;
@@ -199,52 +230,52 @@ CREATE TABLE tabla\_nueva LIKE tabla\_original;
INSERTAR DATOS DE UNA TABLA A OTRA
INSERT INTO tabla\_nueva SELECT \* FROM tabla\_original;
INSERT INTO tabla_nueva SELECT * FROM tabla_original;
DUPLICAR TABLA Y INSERTAR TODOS LOS REGISTROS
CREATE TABLE tabla\_nueva SELECT \* FROM tabla\_original;
CREATE TABLE tabla_nueva SELECT * FROM tabla_original;
Para sqlite:
CREATE TABLE nueva\_tabla AS SELECT \* FROM tabla\_original
CREATE TABLE nueva_tabla AS SELECT * FROM tabla_original
VER REGISTROS DUPLICADOS
SELECT telefono FROM clientes GROUP BY telefono HAVING COUNT(\*)>1;
SELECT telefono FROM clientes GROUP BY telefono HAVING COUNT(*)>1;
VER REGISTROS DUPLICADOS (CUENTA DE DUPLICADOS)
SELECT telefono, count(\*) FROM usuarios GROUP BY telefono HAVING COUNT(\*)>1;
SELECT telefono, count(*) FROM usuarios GROUP BY telefono HAVING COUNT(*)>1;
BORRAR REGISTROS DUPLICADOS (TODOS)
DELETE FROM clientes WHERE telefono IN (SELECT telefono FROM clientes GROUP BY telefono HAVING COUNT(\*)>1)
DELETE FROM clientes WHERE telefono IN (SELECT telefono FROM clientes GROUP BY telefono HAVING COUNT(*)>1)
BORRAR REGISTROS DUPLICADOS (DEJANDO UNO) repetir varias veces ya que eliminar uno de los duplicados por cada consulta ejecutada.
DELETE FROM contactos1 WHERE id IN (SELECT \* FROM (SELECT id FROM contactos1 GROUP BY nombre HAVING (COUNT(\*) > 1)) AS A);
DELETE FROM contactos1 WHERE id IN (SELECT * FROM (SELECT id FROM contactos1 GROUP BY nombre HAVING (COUNT(*) > 1)) AS A);
BORRAR REGISTROS DUPLICADOS CREANDO TABLA TEMPORAL
CREATE TABLE TableA\_Verify AS SELECT DISTINCT \* FROM TableA;
CREATE TABLE TableA_Verify AS SELECT DISTINCT * FROM TableA;
DELETE FROM TableA;
INSERT INTO TableA SELECT \* FROM TableA\_Verify;
INSERT INTO TableA SELECT * FROM TableA_Verify;
DROP TABLE TableA\_Verify;
DROP TABLE TableA_Verify;
BUSCAR LOS QUE ESTAN REPETIDOS
SELECT nie, count(\*) FROM identidades
SELECT nie, count(*) FROM identidades
GROUP BY nie
HAVING COUNT(\*)>1;
HAVING COUNT(*)>1;
BORRAR REGISTROS REPETIDOS Y DEJAR SOLO UNO. SE ESCRIBE TODO SEGUIDO EN LA CONSULTA FUNCIONA COMPROBADO. OK
@@ -254,7 +285,7 @@ SELECT MIN(id) as id, nie FROM identidades
GROUP BY nie
HAVING COUNT(\*)>1
HAVING COUNT(*)>1
)
@@ -273,23 +304,23 @@ SELECT id FROM repetidos
SQLITE
SELECT atestado, delito, count(\*) FROM tab\_detenidos2
SELECT atestado, delito, count(*) FROM tab_detenidos2
GROUP BY atestado
HAVING COUNT(\*)>1;
HAVING COUNT(*)>1;
WITH repetidos AS (
SELECT MIN(id) as id, atestado FROM tab\_detenidos2
SELECT MIN(id) as id, atestado FROM tab_detenidos2
GROUP BY atestado
HAVING COUNT(\*)>1
HAVING COUNT(*)>1
)
DELETE FROM tab\_detenidos2
DELETE FROM tab_detenidos2
WHERE id not IN (
@@ -305,57 +336,57 @@ SELECT id FROM repetidos
DATOS REPETIDOS
SELECT u.\* FROM usuarios u WHERE telefono IN
SELECT u.* FROM usuarios u WHERE telefono IN
` `( SELECT telefono FROM usuarios GROUP BY telefono HAVING COUNT(\*)>1 );
` `( SELECT telefono FROM usuarios GROUP BY telefono HAVING COUNT(*)>1 );
BUSCAR DUPLICADOS
SE LISTAN TODAS LAS IDENTIDADES QUE ESTAN REPETIDAS
SELECT tabla\_empleados.\* FROM tabla\_empleados
SELECT tabla_empleados.* FROM tabla_empleados
WHERE identidad IN (
SELECT identidad FROM tabla\_empleados
SELECT identidad FROM tabla_empleados
GROUP BY identidad
HAVING COUNT(\*)>1
HAVING COUNT(*)>1
) order by identidad DESC
NUMERO DE VECES QUE SE REPITE UNA IDENTIDAD
SELECT identidad, count(\*) FROM tabla\_empleados
SELECT identidad, count(*) FROM tabla_empleados
GROUP BY identidad
HAVING COUNT(\*)>1;
HAVING COUNT(*)>1;
SUMAR VALORES COLUMNAS (SUM)
SELECT SUM (column\_name) FROM table\_name WHERE condition;
SELECT SUM (column_name) FROM table_name WHERE condition;
SELECT SUM (cantidad) as total FROM ventas;
ELIMINAR SALTO DE LINEA con \n por <br>
ELIMINAR SALTO DE LINEA con n por <br>
UPDATE table SET gestiones = REPLACE(gestiones, '\n','<br>') WHERE id = '8072';
UPDATE table SET gestiones = REPLACE(gestiones, 'n','<br>') WHERE id = '8072';
REPLACE
REPLACE(str, find\_string, replace\_with)
REPLACE(str, find_string, replace_with)
SELECT REPLACE(country,'K','SA') FROM publisher WHERE country='UK';
UPDATE tabregistro SET registro = REPLACE(registro, '/2020','/20');
CREATE TABLE inves.ciber SELECT \* FROM ciber.principal;
CREATE TABLE inves.ciber SELECT * FROM ciber.principal;
UPDATE ciber SET asunto1=CONCAT(asunto,' ',tipohecho)
@@ -371,23 +402,23 @@ Detenpol pasar año de fecha nacimiento a varchar antes de concatenar en fecha n
INSERTAR DATOS DE UNA TABLA A OTRA
INSERT INTO inves.tabdetenpol SELECT \* FROM bdcentro.centro\_detenpol;
INSERT INTO inves.tabdetenpol SELECT * FROM bdcentro.centro_detenpol;
INSERT INTO inves.taboficios SELECT \* FROM bdcentro.centro\_oficios;
INSERT INTO inves.taboficios SELECT * FROM bdcentro.centro_oficios;
INSERT INTO inves.tabobjetos SELECT \* FROM bdcentro.centro\_objetos;
INSERT INTO inves.tabobjetos SELECT * FROM bdcentro.centro_objetos;
INSERT INTO inves.tabregistro SELECT \* FROM bdcentro.centro\_registro;
INSERT INTO inves.tabregistro SELECT * FROM bdcentro.centro_registro;
UPDATE tabregistro SET registro = CONCAT(registro,'/20') where id = '6976'
INSERT INTO tabregistro SELECT \* FROM ciber;
INSERT INTO tabregistro SELECT * FROM ciber;
INSERT INTO tabregistro SELECT \* FROM oeste\_registro;
INSERT INTO tabregistro SELECT * FROM oeste_registro;
iNSERT INTO tabdetenpol SELECT \* FROM ufam\_detenpol;
iNSERT INTO tabdetenpol SELECT * FROM ufam_detenpol;
update ufam\_oficios set grupo = 'ufam';
update ufam_oficios set grupo = 'ufam';
@@ -395,14 +426,14 @@ SQLITE COPIAR TABLA DE UNA BD A OTRA BD
1. Archivo / Anexar base de datos
Tambien se puede hacer con ATTACH DATABASE 'ruta\_a\_la\_base\_de\_datos\_origen.sqlite' AS origen
Tambien se puede hacer con ATTACH DATABASE 'ruta_a_la_base_de_datos_origen.sqlite' AS origen
1. CREATE TABLE tab\_desempeño AS SELECT \* FROM data.tab\_desempeño
1. CREATE TABLE tab_desempeño AS SELECT * FROM data.tab_desempeño
ACTUALIZAR TELEFONOS
\## MySQL ###
## MySQL ###
UPDATE tabcontactos
@@ -418,7 +449,7 @@ SUBSTRING(telefono1, 7, 3)
WHERE LENGTH(telefono1) = 9;
\## SQLITE ##
## SQLITE ##
UPDATE tabcontactos
@@ -437,7 +468,7 @@ Posicionarnos en la ruta donde se encuentra el servidor mySQL en XAMPP:
Dentro de esta ruta tecleamos la orden:
./mysql -u root -p base\_de\_datos (se abre terminal mysql en la base seleccionada)
./mysql -u root -p base_de_datos (se abre terminal mysql en la base seleccionada)
source /home/jesus/backup.sql
@@ -456,7 +487,7 @@ p.precio,
m.cantidad,
(p.precio \* m.cantidad) AS precio\_total
(p.precio * m.cantidad) AS precio_total
FROM
@@ -464,13 +495,13 @@ productos p
JOIN
movimientos m ON p.id = m.producto\_id;
movimientos m ON p.id = m.producto_id;
PRECIO TOTAL DE TODAS LAS UNIDADES VENDIDAS
SELECT
SUM(a.precio \* v.unidades\_vendidas) AS precio\_total\_general
SUM(a.precio * v.unidades_vendidas) AS precio_total_general
FROM
@@ -488,9 +519,9 @@ SELECT
1. articulo,
1. precio,
SUM(v.unidades\_vendidas) AS unidades\_vendidas\_periodo,
SUM(v.unidades_vendidas) AS unidades_vendidas_periodo,
SUM(a.precio \* v.unidades\_vendidas) AS precio\_total\_periodo
SUM(a.precio * v.unidades_vendidas) AS precio_total_periodo
FROM
@@ -502,7 +533,7 @@ ventas v ON a.articulo = v.articulo
WHERE
v.fecha\_venta BETWEEN '2023-01-01' AND '2023-12-31'
v.fecha_venta BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY
@@ -513,7 +544,7 @@ TOTAL GENERAL FILTRAR ENTRE FECHAS
SELECT
SUM(a.precio \* v.unidades\_vendidas) AS precio\_total\_periodo
SUM(a.precio * v.unidades_vendidas) AS precio_total_periodo
FROM
@@ -525,27 +556,27 @@ ventas v ON a.articulo = v.articulo
WHERE
v.fecha\_venta BETWEEN '2023-01-01' AND '2023-12-31';
v.fecha_venta BETWEEN '2023-01-01' AND '2023-12-31';
\---------------------------
---------------------------
CONSULTA BASE\_D
CONSULTA BASE_D
SELECT grupo, COUNT(\*) FROM `tabregistro` WHERE grupo = 'centro' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM `tabregistro` WHERE grupo = 'centro' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(\*) FROM `tabregistro` WHERE grupo = 'norte' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM `tabregistro` WHERE grupo = 'norte' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(\*) FROM `tabregistro` WHERE grupo = 'este' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM `tabregistro` WHERE grupo = 'este' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(\*) FROM `tabregistro` WHERE grupo = 'oeste' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM `tabregistro` WHERE grupo = 'oeste' AND fechaEnt BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(\*) FROM taboficios WHERE grupo = 'centro' AND fecha BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM taboficios WHERE grupo = 'centro' AND fecha BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(\*) FROM taboficios WHERE grupo = 'norte' fecha BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM taboficios WHERE grupo = 'norte' fecha BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(\*) FROM taboficios WHERE grupo = 'este' AND fecha BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM taboficios WHERE grupo = 'este' AND fecha BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(\*) FROM taboficios WHERE grupo = 'oeste' AND fecha BETWEEN '2025-01-01' AND '2025-09-25';
SELECT grupo, COUNT(*) FROM taboficios WHERE grupo = 'oeste' AND fecha BETWEEN '2025-01-01' AND '2025-09-25';
CENTRO 4083 107
@@ -555,6 +586,6 @@ ESTE 1828 207
OESTE 6500 210
\-------------------------------
-------------------------------