Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - AlbertoBSD

#2211
Bien, si es lo que estaba buscando.

Código (sql) [Seleccionar]

SELECT *
FROM tabla
WHERE CONCAT( id, grupo )
IN (

SELECT CONCAT( id, grupo )
FROM tabla
GROUP BY CONCAT( id, grupo )
HAVING count( CONCAT( id, grupo ) ) >1
)



Funciona :)


Código (sql) [Seleccionar]
select * from tabla
where(id, grupo)
in(
select id, grupo from tabla
group by id, grupo
having count(*)>1);


Funciona :D.

Pues la de ^TiFa^ no tiene que concatenar, eso significa que gasta menos procesador y memoria a la hora de ejecutarlo sobre una tabla mediana de uno 7000 Registros.

Se los agradezco a los 2. Muchisimas gracias.

Ahora podre evitar la tediosidad de estar revisando visualmente todos los campos repetidos.

Saludos.
#2212
Programación Visual Basic / Re: Clickeador
12 Noviembre 2008, 20:21 PM
Estan bien los codigos, voy a tomar uno para portarlo a C.

Cual es el proposito que tienen ustedes para los click ? Publicidad $$$ ?
#2213
^TiFa^ , en los pocos post que he compartido con tigo has demostrado siempre tratar de ayudar, y eso se te agradece enormemente. ;)

Vuelvo a repetir, muchas veces no me doy a entender, pero a ver si lo explico ahora con codigo a ver si nos entendemos  :) va.

Código (sql) [Seleccionar]

DROP DATABASE IF EXISTS `db`;
CREATE DATABASE  `db`;
USE db;

DROP TABLE IF EXISTS `tabla`;

CREATE TABLE tabla (
id VARCHAR(10) NULL,
grupo  VARCHAR(10) NULL
);

DELIMITER $$

DROP PROCEDURE IF EXISTS `addRegistro` $$
CREATE PROCEDURE `addRegistro`(IN i VARCHAR(10),IN g VARCHAR(10))
BEGIN
INSERT INTO tabla (id,grupo) values(i,g);
END $$

DELIMITER ;

CALL addRegistro('1','1');
CALL addRegistro('2','1');
CALL addRegistro('3','1');
CALL addRegistro('4','1');
CALL addRegistro('4','1');
CALL addRegistro('1','2');
CALL addRegistro('2','2');
CALL addRegistro('3','2');
CALL addRegistro('4','2');
CALL addRegistro('5','2');
CALL addRegistro('6','2');
CALL addRegistro('7','2');


Bien ya temos el ejemplo de prueba.

Ahora cuando yo ejecuro mi consulta:

Código (sql) [Seleccionar]

SELECT * FROM tabla WHERE id IN (SELECT id FROM tabla AS x
GROUP BY id HAVING count(*)>1 AND tabla.id=x.id)
ORDER BY id;


Obtengo el siguiente resultado.

Citar
id   grupo
1   1
1   2
2   1
2   2
3   1
3   2
4   1
4   1

4   2

Cuando digo extender la consulta anterior, yo desearia que solo me indicase:
Citar
id   grupo
4   1
4   1

Solo los que se repiten.

Cuando mensione que la consulta que hago si me sirve, en realidad si sirve, pero tengo que comprar visualmente, cuales son los que en verdad se repite el id y el grupo, y ese es el facto que quiero eliminar.

^TiFa^, un cordial saludo, de antemano gracias por el tiempo que te estas tomando en leerme (^^.)

Saludos.
#2214
Jaja.. :xD

Valla que tienes razon, ahora

Cita de: ^TiFa^ en 12 Noviembre 2008, 18:39 PM
Mi nino, una solucion no es rendirse ante un problema.

Cita de: Anon en 12 Noviembre 2008, 18:04 PM
Espero encontrar la solucion y postear el resultado que a mas de algun incauto le va a servir como ami.

No me he rendido, estoy busque y busque, como la pelicula Taken -> En español, Busqueda Implacable :xD.

Si tienes razon, no me doy mucho a entender. igualmente muchas gracias por tu valioso tiempo.

Saludos
#2215
Bien nuevamente gracias por las respuestas y por su tiempo :D

Revice las consultas

Citarselect grupo, count(grupo) as total
from tabla
group by grupo
union all
select id, count(id) as totalisimo
from tabla
group by id;

Es buena la consulta de hecho es muy parecida a:

Código (sql) [Seleccionar]
SELECT id, COUNT(*) FROM tabla GROUP BY id;
junto a la que me los muestra por grupo: mmm union all aaa de hecho es eso :xD

Es me muestra Todos los registros que tengo XD.

Mencione en el principio una consulta que utilizo:

Y la siguiente:
Citar
SELECT GRUPO
FROM TABLA
GROUP BY GRUPO
HAVING COUNT(*) > 1;

Es como la primera. que mostraste sin el union y no me dice cuantos hay de cada uno.

Ahora:

Cita de: ^TiFa^ en 12 Noviembre 2008, 17:28 PM
select GRUPO, ID from tabla where GRUPO IN(select distinct(GRUPO) from tabla) ?????

Ahora mencione una consulta que uso

Cita de: Anon en 12 Noviembre 2008, 17:00 PM

Código (sql) [Seleccionar]
select * from tabla where id in (select id from tabla as x
group by id having count(*)>1 and tabla.id=x.id)
order by id;


Esta me muestra exclusivamente los registros que estan duplicados en el ID , pero como lo menciono en esta tabla pueden existir registros duplicados en el ID

Yo quiero extender esta consulta, a que ahi mismo  borre cuando el grupo es Diferente.

Ya tengo como 2 semanas buscando la forma de hacer esto y creeeme que he leido la documentacion bastante tiempo pero es por decir algo, una consulta muy compleja  :-(

Espero encontrar la solucion y postear el resultado que a mas de algun incauto le va a servir como ami.

La consulta que mostre si me funciona, solo que tengo que estar revisando visualmente que el grupo sea Distinto.

Saludos y Muchisimas gracias.
#2216
Muchas gracias por responder, voy a verificar lo que dices y leer la documentacion de las clausulas que me pasaste.

Explico mejor:

Existen registro con muy variados ID, en algunas ocasiones se puede encontrar mas de un mismo ID, y esto solo es valido si y solo si pertencen a grupos Distintos. En dado caso de exista 2 registros con el mismo ID y el mismo Grupo se considera Repetido, y esos son los que quiero encontrar.

Saludos y gracias.
#2217
Si seria correcto, pero creo que en el fondo, format llega a llamar  Str.

Igual muchas gracias ya quedo solucionado.
#2218
Bien, he generado ya un reporte que me ayuda con eso y tarda algo con la Base de datos de 7000 Registros, unos 3 minutos.

Bien para no hacerla larga la BD es originalemente de MS Access, yo la migre a MySQL por comodidad.

Hay una tabla que no tiene primary key, y contiene algunos registros duplicados, y quiero encontralos

Son 2 campos los que tengo que validar al mismo tiempo.

Id y grupo ambos son varchar(10) La condion es que en cada grupo no debe de existir ID repetidos. y en general puede exisistir mas de un mismo ID, siempre y cuando sean de grupos distintos.

Anterior mente realize una consulta que mencione pero solo lo he logrado hacer para el ID, no he podido combinarla para el Grupo:

Código (sql) [Seleccionar]
select * from tabla where id in (select id from tabla as x
group by id having count(*)>1 and tabla.id=x.id)
order by id;


Sinceramente eso me fuciona, solo que hay veces que me muestra los Registros con ID Igual pero  de diferente grupo, quisiera poder extender la busqueda para que tome en consideracion los 2, alguna idea ?




Solucion completa en: Re: MySQL, reporte "Registros duplicados" (Solucionado)

Compara y da un reporte de registros duplicados en 2 Campos, en una misma Tabla, con mas de ~50K Registros, en menos de 2 o un segundo.
#2219
Tan solo en el Segundo Post de este Hilo, se dio el enlace de como hacerlo hay que leer.

Cita de: Novlucker en 26 Mayo 2008, 16:15 PM
Aquí tienes un muy buen tuto de ARP spoofing

.:TALLER PRÁCTICO DE INTRUSIÓN EN REDES LOCALES:.  ;)

Saludos

[Modifico:]Recopilatorio de Mensajes Interesantes [Actualizado 26/04/07]

Tines que hacer primero Envenenamiento ARP. y luego usar alguna otra aplicacion para Capturar los paquetes y despues procesarlos.

Saludos.

Yo te digo el nombre de las librerias que lo hacen posible, libnet, pcap, con sus equivalentes en windows funcionales winpcap, y libnet.

#2220
Bueno, hay una Utilidad en VB que te perminte crear un Empaquetador o algo por el estilo no recuerdo el nombre, pero Si vas a tener que encontrar la manera de instalar el MySQL en la maquina donde lo vallas a instalar, por que si no tienes MySQL no vas a tener BD y al no tener esta es posible que tu aplicacion no sirva.

Saludos