COUNT

02/04/2008 - 17:29 por Penta | Informe spam
Estimados.
Utilizo SS 2000 SP4.

Tengo la siguiente estructura con estos datos de ejemplo

Codigo Estado
1 A
1 A
1 R
1 R
2 A
2 A

Quisiera tene el porcentaje de aprobacion por Codigo, donde A=Aprobado
y R=Reprobado.

Para estos datos seria:
Codigo Porcentaje_Aprobacion
1 50
2 100

Atte.
Penta.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
02/04/2008 - 19:01 | Informe spam
Try:

select estado, ((count(*) * 1.) / (select count(*) from t) * 100)
from t
group by estado

select estado, ((count(*) * 1.) / (count(*) over()) * 100)
from t
group by estado


AMB

"Penta" wrote:

Estimados.
Utilizo SS 2000 SP4.

Tengo la siguiente estructura con estos datos de ejemplo

Codigo Estado
1 A
1 A
1 R
1 R
2 A
2 A

Quisiera tene el porcentaje de aprobacion por Codigo, donde A=Aprobado
y R=Reprobado.

Para estos datos seria:
Codigo Porcentaje_Aprobacion
1 50
2 100

Atte.
Penta.


Respuesta Responder a este mensaje
#2 jcac
02/04/2008 - 19:06 | Informe spam
Hola Penta,

Esto te puede ayudar, pienso que debe de haber otra manera.

create table #tmp(codigo int, estado varchar(1))
go
insert into #tmp values (1, 'A')
insert into #tmp values (1, 'A')
insert into #tmp values (1, 'R')
insert into #tmp values (1, 'R')
insert into #tmp values (2, 'A')
insert into #tmp values (2, 'A')
go
select * from #tmp
go
select t.codigo, t.estado, avg(t.cestado)*1.00/(select count(estado) from
#tmp where codigo = t.codigo)
from (select count(estado) cestado, codigo, estado from #tmp where estado
='A' group by codigo, estado) t
group by t.codigo, t.estado
go
drop table #tmp

Saludos

Juan Carlos
"Penta" escribió en el mensaje
news:
Estimados.
Utilizo SS 2000 SP4.

Tengo la siguiente estructura con estos datos de ejemplo

Codigo Estado
1 A
1 A
1 R
1 R
2 A
2 A

Quisiera tene el porcentaje de aprobacion por Codigo, donde A=Aprobado
y R=Reprobado.

Para estos datos seria:
Codigo Porcentaje_Aprobacion
1 50
2 100

Atte.
Penta.

Respuesta Responder a este mensaje
#3 Alejandro Mesa
02/04/2008 - 19:36 | Informe spam
Correccion,

Mal entendi el problema por completo.

select
codigo,
(
(sum(case when estado = 'A' then 1 else 0 end) * 1.)
/
(select count(*) from t as b where b.codigo = a.codigo) * 100
)
from
t as a
group by
codigo


AMB



"Alejandro Mesa" wrote:

Try:

select estado, ((count(*) * 1.) / (select count(*) from t) * 100)
from t
group by estado

select estado, ((count(*) * 1.) / (count(*) over()) * 100)
from t
group by estado


AMB

"Penta" wrote:

> Estimados.
> Utilizo SS 2000 SP4.
>
> Tengo la siguiente estructura con estos datos de ejemplo
>
> Codigo Estado
> 1 A
> 1 A
> 1 R
> 1 R
> 2 A
> 2 A
>
> Quisiera tene el porcentaje de aprobacion por Codigo, donde A=Aprobado
> y R=Reprobado.
>
> Para estos datos seria:
> Codigo Porcentaje_Aprobacion
> 1 50
> 2 100
>
> Atte.
> Penta.
>
>
Respuesta Responder a este mensaje
#4 Penta
02/04/2008 - 22:23 | Informe spam
Pues mil gracias.
Apenas termine de resolver algunas cosas, las pruebo y posteo.

Gracias.
Penta.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida