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


| |||
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 ![]() ![]() |
| |||
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. |