ayuda con una consulta group by

18/02/2005 - 19:12 por aalvaromartinez | Informe spam
buenos dias, tengo un pequeño problema al elabrorar una consulta tengo
una tabla persona y quier realizaruna consulta de cuantas personas
existe por edad , bueno hasta ahi vamos bien
select edad, count(edad) as numero from persona group by edad
con resultado siguietne
edad numero
2
15 10
23 12
34 22
55 11
null 2

bueno se ve que existen 2 personas que se lleno con espacio y 2 nulls,
esto es porque pertenecen a una categoria distitno en elsistema, pero
el problema es el siguiente quisiera que la consulta se vea de esta
forma
edad numero
15 10
23 12
34 22
55 11
otros 4
como puedo agrupar ese campo vacio con el null ?para que la consulta
me retorne de esa forma? gracias de antemano a todos

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
18/02/2005 - 19:41 | Informe spam
Trata:

select
case when edad is null or len(edad) = 0 then 'otros' else edad end as edad,
count(*) as numero
group by
case when edad is null or len(edad) = 0 then 'otros' else edad end
order by
case when edad is null or len(edad) = 0 then 1 else 0 end asc,
edad asc
go


AMB



select select
"Alvaro123" wrote:

buenos dias, tengo un pequeño problema al elabrorar una consulta tengo
una tabla persona y quier realizaruna consulta de cuantas personas
existe por edad , bueno hasta ahi vamos bien
select edad, count(edad) as numero from persona group by edad
con resultado siguietne
edad numero
2
15 10
23 12
34 22
55 11
null 2

bueno se ve que existen 2 personas que se lleno con espacio y 2 nulls,
esto es porque pertenecen a una categoria distitno en elsistema, pero
el problema es el siguiente quisiera que la consulta se vea de esta
forma
edad numero
15 10
23 12
34 22
55 11
otros 4
como puedo agrupar ese campo vacio con el null ?para que la consulta
me retorne de esa forma? gracias de antemano a todos

Respuesta Responder a este mensaje
#2 Alejandro Mesa
18/02/2005 - 19:57 | Informe spam
Correccion,

El anterior fue un desastre. Esta version ya esta probada.

use northwind
go

create table t(
edad char(3) null
)

insert into t values(null)
insert into t values(null)
insert into t values(' ')
insert into t values(' ')

insert into t values(1)

insert into t values(2)
insert into t values(2)
insert into t values(2)

insert into t values(5)
insert into t values(2)
go

select
case when edad is null or len(edad) = 0 then 'otros' else edad end as edad,
count(*) as numero
from
t
group by
case when edad is null or len(edad) = 0 then 'otros' else edad end
order by
case when (case when edad is null or len(edad) = 0 then 'otros' else edad
end) = 'otros' then 1 else 0 end
go

drop table t
go


AMB


"Alejandro Mesa" wrote:

Trata:

select
case when edad is null or len(edad) = 0 then 'otros' else edad end as edad,
count(*) as numero
group by
case when edad is null or len(edad) = 0 then 'otros' else edad end
order by
case when edad is null or len(edad) = 0 then 1 else 0 end asc,
edad asc
go


AMB



select select
"Alvaro123" wrote:

> buenos dias, tengo un pequeño problema al elabrorar una consulta tengo
> una tabla persona y quier realizaruna consulta de cuantas personas
> existe por edad , bueno hasta ahi vamos bien
> select edad, count(edad) as numero from persona group by edad
> con resultado siguietne
> edad numero
> 2
> 15 10
> 23 12
> 34 22
> 55 11
> null 2
>
> bueno se ve que existen 2 personas que se lleno con espacio y 2 nulls,
> esto es porque pertenecen a una categoria distitno en elsistema, pero
> el problema es el siguiente quisiera que la consulta se vea de esta
> forma
> edad numero
> 15 10
> 23 12
> 34 22
> 55 11
> otros 4
> como puedo agrupar ese campo vacio con el null ?para que la consulta
> me retorne de esa forma? gracias de antemano a todos
>
Respuesta Responder a este mensaje
#3 Alejandro Mesa
18/02/2005 - 20:01 | Informe spam
Se me olvido completar el ORDER BY.

...
order by
case
when (case when edad is null or len(edad) = 0 then 'otros' else edad end) =
'otros' then 1
else 0 end asc,
edad asc
go


AMB


"Alejandro Mesa" wrote:

Correccion,

El anterior fue un desastre. Esta version ya esta probada.

use northwind
go

create table t(
edad char(3) null
)

insert into t values(null)
insert into t values(null)
insert into t values(' ')
insert into t values(' ')

insert into t values(1)

insert into t values(2)
insert into t values(2)
insert into t values(2)

insert into t values(5)
insert into t values(2)
go

select
case when edad is null or len(edad) = 0 then 'otros' else edad end as edad,
count(*) as numero
from
t
group by
case when edad is null or len(edad) = 0 then 'otros' else edad end
order by
case when (case when edad is null or len(edad) = 0 then 'otros' else edad
end) = 'otros' then 1 else 0 end
go

drop table t
go


AMB


"Alejandro Mesa" wrote:

> Trata:
>
> select
> case when edad is null or len(edad) = 0 then 'otros' else edad end as edad,
> count(*) as numero
> group by
> case when edad is null or len(edad) = 0 then 'otros' else edad end
> order by
> case when edad is null or len(edad) = 0 then 1 else 0 end asc,
> edad asc
> go
>
>
> AMB
>
>
>
> select select
> "Alvaro123" wrote:
>
> > buenos dias, tengo un pequeño problema al elabrorar una consulta tengo
> > una tabla persona y quier realizaruna consulta de cuantas personas
> > existe por edad , bueno hasta ahi vamos bien
> > select edad, count(edad) as numero from persona group by edad
> > con resultado siguietne
> > edad numero
> > 2
> > 15 10
> > 23 12
> > 34 22
> > 55 11
> > null 2
> >
> > bueno se ve que existen 2 personas que se lleno con espacio y 2 nulls,
> > esto es porque pertenecen a una categoria distitno en elsistema, pero
> > el problema es el siguiente quisiera que la consulta se vea de esta
> > forma
> > edad numero
> > 15 10
> > 23 12
> > 34 22
> > 55 11
> > otros 4
> > como puedo agrupar ese campo vacio con el null ?para que la consulta
> > me retorne de esa forma? gracias de antemano a todos
> >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida