SQL - Contar registros con valor único

 
Vista:
sin imagen de perfil

Contar registros con valor único

Publicado por Fernando (2 intervenciones) el 04/09/2015 07:48:01
Saludos a todos, ¿pueden ayudarme, porfavor?

¿Con qué instrucción SQL logro contar el número de registros que tienen únicamente un valor?

Por ejemplo, una tabla con la siguiente información:

niño | juguete
------------------------------
fernando patines
david patines
david canicas
antonio patines

¿Cómo obtengo de salida la información:
2
haciendo referencia a que solamente dos niños, fernando y antonio, tienen única y específicamente el juguete patines? david no cuenta puesto que además de patines tiene canicas.

Muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Contar registros con valor único

Publicado por Rafael (111 intervenciones) el 04/09/2015 13:55:56
Mira:
Imagen

Si supongo que la tabla es algo asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE juguetes
	(
     ninio varchar(25),
     juguete varchar(25)
    );
 
INSERT INTO juguetes
(ninio, juguete)
VALUES
('fernando','patines'),
('david','patines'),
('david','canicas'),
('antonio','patines'),
('pedro', 'canicas')
;

Puedo formar el query asi:
1
2
3
4
5
6
7
8
9
10
select count(distinct ninio)
from   (
        select ninio
             , count(distinct juguete) cantidad
             , sum(case when juguete = 'patines' then 1 else 0 end) patines
        from   juguetes
        group  by ninio) as A
where   cantidad = 1
and     patines > 0
;

Lo que me da el resultado de 2.

Por que ???
por que el subquery que he propuesto
1
2
3
4
5
select ninio
     , count(distinct juguete) cantidad
     , sum(case when juguete = 'patines' then 1 else 0 end) patines
from   juguetes
group  by ninio;

Y que hace suma los distintos juguetes para cada niño, y si incluye en ellos patines le suma uno, si no lo incluye no le suma.
contesta esto:
Imagen

La segunda parte ha contado el numero de niños que marque tienen patines, pero solo me suma los que en cantidad de juguetes distintos tienen 1, con lo cual cumplo las condiciones solicitadas.

Espero que te sirva ... no olvides validar la respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Contar registros con valor único

Publicado por Fernando (2 intervenciones) el 04/09/2015 17:47:30
ME FUE DE MUCHA AYUDA, INFINITAS GRACIAS, RAFAÉL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar