categoria producto
01 02
01 03
04 01
lo que deceo es contar las diferentes categorias y especificar cual aparece mas veces

si me ayudan se los agradecere mucho nose como hacerle
| |||
| Contar los diferentes itens tengo un query en el cual selecciono productos, y categorias. en la seleccion hay productos que pertenecen a la misma categoria de esta forma tengo categoria producto 01 02 01 03 04 01 lo que deceo es contar las diferentes categorias y especificar cual aparece mas veces ![]() si me ayudan se los agradecere mucho nose como hacerle |
| |||
| Re: Contar los diferentes itens MARLIT, me encantaria ayudarte, pero no se muy bien todavia cual es tu problema... si solo es contar las diferentes categorias, la siguiente sentencia te servira...
Código:
pero me parece que tu problema es otro, asi que si puedes explicate un poco mas y cuentame cual es tu problema.select count(*) cantidad, categoria from categorias group by categoria Sldo Atte, Mario. |
| |||
| Re: Contar los diferentes itens Bueno aqui pongo mi query, en donde selecciono todos los productos comprados por un cliente entre una determinada fecha, cada producto pretenece a una categoria, si solo corro en el query interno(color rojo) me despliga lo de abajo en color verde, el caso es que quiero contar cual es la categoria que mas se repite y no me sale cuando lo corro todo me despliga la que no es, porfa te lo agradecere mucho ![]() select * from ( select a.cod_grupo_terap,a.des_producto,count(b.cod_produ cto)--,C.COD_CLIENTE from cmr.MAE_PRODUCTO_COM a, (select num_documento,cod_producto,count(cod_producto) from btlcadena.D_DOCUMENTOS group by num_documento,cod_producto)b, (select cod_cliente,num_documento,fch_factura from btlcadena.C_DOCUMENTOS)c where trim(a.cod_producto)=trim(b.cod_producto) and TO_NUMBER(C.cod_cliente)=TO_NUMBER('0000000006')an d trim(b.num_documento)=trim(c.num_documento) and a.cod_grupo_terap <>' ' and c.fch_factura between('11-DIC-06') and ('11-JUN-07') GROUP BY a.cod_grupo_terap,a.des_producto order by count(b.cod_producto) desc ) where rownum=1 COD_GRUPO_TERAP DES_PRODUCTO COUNT(B.COD_PRODUCTO)--,C.COD_CLIENTE --------------- -------------------------------------------------------------------------------- ------------------------------------- 06 SINUTAB NO SUEÑO CJA x 144 TAB 4 05 UVAMIN SR CJA x 20 CAP 2 07 DESLORAN TAB 5 mg CJA x 10 TAB 2 07 EFECTINE D CJA x 24 CAP BLANDA 2 14 SYSTANE GOT LUBRIC OCUL x 15 ml FCO 2 07 UNICLAR ADULTO SPRAY NAS 0.05 % FCO x 18 gr 2 19 AVAMIGRAN CJA x 25 SOBRE 2 7 rows selected |
| |||
| Re: Contar los diferentes itens Bueno Joven MARLIT.... lo primero que hice fue ordenar un poco la consulta, la prolijidad en el armada de la consulta es muy importante. me di cuenta que haces un join entre numero de documento y otro por codigo de producto, supongo que la categoria a la que te refieres la cuales no haces mencion en ningun lado, es COD_GRUPO_TERAP. bien aqui el cogigo.
Código:
la solucion a tu problema esta en la linea...
SELECT FECHA,
NUM_DOCUMENTO,
COD_CLIENTE,
COD_GRUPO_TERAP,
COD_PRODUCTO,
SUM(COD_PRODUCTO) OVER(PARTITION BY COD_GRUPO_TERAP) PRODUCTO_POR_CATEGORIA,
DES_PRODUCTO
FROM (SELECT TRIM(COD_GRUPO_TERAP) COD_GRUPO_TERAP,
DES_PRODUCTO,
COUNT(TRIM(COD_PRODUCTO)) CANTIDAD
FROM CMR.MAE_PRODUCTO_COM
WHERE TRIM(COD_GRUPO_TERAP) IS NOT NULL
GROUP BY TRIM(A.COD_GRUPO_TERAP),
A.DES_PRODUCTO
) A,
(SELECT TRIM(NUM_DOCUMENTO) NUM_DOCUMENTO,
TRIM(COD_PRODUCTO) COD_PRODUCTO,
COUNT(*) CANTIDAD
FROM BTLCADENA.D_DOCUMENTOS
GROUP BY TRIM(NUM_DOCUMENTO),
TRIM(COD_PRODUCTO)
)B,
(SELECT TO_NUMBER(COD_CLIENTE) COD_CLIENTE,
TRIM(NUM_DOCUMENTO) NUM_DOCUMENTO,
FCH_FACTURA
FROM BTLCADENA.C_DOCUMENTOS
WHERE FCH_FACTURA BETWEEN ('11-DIC-06')
AND ('11-JUN-07')
)C
WHERE A.COD_PRODUCTO = B.COD_PRODUCTO
AND C.COD_CLIENTE = 6
AND B.NUM_DOCUMENTO = C.NUM_DOCUMENTO
Código:
esto suma la cantidad de productos por categoria y aparece como una columna mas.SUM(COD_PRODUCTO) OVER(PARTITION BY COD_GRUPO_TERAP) Puede que algun cambio no funcione, corrigelo y dime luego como te fue. Sldo Atte, Mario. |