Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Contar, Agrupar, Ordenar

Contar, Agrupar, Ordenar
Artículo
Responder citando    Descargar mensaje  
Mensaje Contar, Agrupar, Ordenar 
 
Hola!.

Hace bastantes años cree una base de juegos de pc en Access y estuve haciendo distintos tipos de consultas.
En la que estoy ahora practicando un poco, trato de querer contar el número de juegos según su categoría, pero en sqlite.

Voy a mostraros la consulta como la hice ahora.
Así por ejemplo podía tener 50 juegos árcades, 23 de plataformas, etc,etc..

SELECT count(categoria) AS cantidad_de_juegos,categoria FROM baseamiga GROUP BY categoria ORDER BY count(categoria) DESC;
 


cantidad_de_juegos, no es un campo que existe en la base, se crea. ¿ Campo calculado ?. Lo he visto de otras formas.
Me gustaría saber si es mejorable. Si es adecuada. Funcionar, funciona.

Y está es la instrucción de aquella base de juegos de pc que cree en su día con Access.

SELECT Count(Titulos.cds) AS CuentaDecds, Titulos.tipo, Titulos.clase
FROM Titulos
GROUP BY Titulos.tipo, Titulos.clase
ORDER BY Count(Titulos.cds) DESC;
 


Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 21 May 2015, 20:43 ]
 


Contar, Agrupar, Ordenar
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Contar, Agrupar, Ordenar 
 
Citar:
cantidad_de_juegos, no es un campo que existe en la base, se crea. ¿ Campo calculado ?. Lo he visto de otras formas.
Me gustaría saber si es mejorable. Si es adecuada. Funcionar, funciona.


cantidad_de_juegos es simplemente el nombre que le das al resultado de la función count. Select devuelve una información, texto ascii, en forma de columnas, a esas columnas tienen una cabecera y esa cabecera no tiene por qué ser el nombre del campo, para eso existe la clausula AS, que en muchas versiones de SQL se puede omitir (Select count(micampo) 'Total' from ...).

Respondiendo cantidad_de_juegos no existe en la base de datos, es el resultado de un proceso al que se le da un nombre. (Bueno, existir existe de forma implícita, de la misma manera que si tienes un 2 y un 2 tienes un cuatro y un 0 implícitos, según apliques el + o el -).

No sé si te respondo con eso.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Jueves, 21 May 2015, 21:45 ]
Responder citando    Descargar mensaje  
Mensaje Re: Contar, Agrupar, Ordenar 
 
A parte de eso:

Citar:
ORDER BY count(categoria) DESC


No es realmente necesario. Lo que hace es ordenarlos de mayor a menor. Si no pones cláusula order by, el resultado saldrá ordenado por categorías, qroup by se encarga de ello. Estas ordenaciones y agrupaciones, no hablemos ya de cláusulas distinct, Having y cosas por el estilo, suelen ralentizar mucho las consultas, por cuanto que primero hay que recuperar todos los datos y luego ordenarlos, etc. En este caso, (hablo de memoria de lo aprendido hace muchos años) la base tiene que recuperar todos los datos ordenarlos por categoria, y procesarlos de uno en uno para ir sumando contadores y luego reordenar ese resultado de mayor a menor. Dependiendo del número de registros, etc, la cosa se puede poner muy lenta... o ser inapreciable el lapsus.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Jueves, 21 May 2015, 21:49 ]
Responder citando    Descargar mensaje  
Mensaje Re: Contar, Agrupar, Ordenar 
 
Shordi:

Lo que pretende es contar el número de veces que se repite una categoría y ordenar según la cantidad obtenida de categorías, en orden descendente.
La idea no es ordenar alfabéticamente por categorías. La salida puede ser así:

 ejemplosalidaconsulta

Habrá veces que el proceso requerido no tiene mas remedio que ser lento. Según el tipo de consulta.
Estas buscando un resultado, a menos que se pueda hacerse de otra forma.

En esta base estamos hablando de 300 registros. A lo mejor no son muchos.

Supongo que, los pc's que usareis para estas tareas no serán lentos.
Por cierto, ¿ cada cuanto tiempo soléis actualizar un pc en el trabajo ?.

¿ Cambiarías algo en la sentencia ?.

La verdad es que hace bastante que no usaba este tipo de consultas. Pero venía bien para esta base de datos.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Viernes, 22 May 2015, 12:40 ]
Responder citando    Descargar mensaje  
Mensaje Re: Contar, Agrupar, Ordenar 
 
Citar:
y ordenar según la cantidad obtenida de categorías, en orden descendente.

Pues perfecto entonces.
Citar:
En esta base estamos hablando de 300 registros. A lo mejor no son muchos.

Eso no es nada. No te molestes en mirar. Salvo que tu ordenata sea un cacharro, 300 se manejan en cerocoma.

Citar:
Supongo que, los pc's que usareis para estas tareas no serán lentos.
Por cierto, ¿ cada cuanto tiempo soléis actualizar un pc en el trabajo ?

Esta tarea, el manejo de la base de datos, la hace el servidor de base de datos, no el PC cliente.
De servidor tengo ahora un I3 con 12 GB de RAM y un disco de 2 TB con un MySQL supervitaminado.
El tamaño medio de la tabla que manejamos es de unos 3000 Registros y los tiempos de latencia no son significativos todavía...

Los pc Clientes... hay de todo. el más pequeño es un... no_sé_qué_AMD_previo_al_dual_Core con dos GB de RAM y el más moderno es un I3 con 4GB.
Los actualizo según el método de la botella de cerveza, que es un montón de trabajo, pero mantiene el parque de bichos más o menos homogéneo.

Saludos.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Viernes, 22 May 2015, 17:14 ]
Responder citando    Descargar mensaje  
Mensaje Re: Contar, Agrupar, Ordenar 
 
Citar:

Esta tarea, el manejo de la base de datos, la hace el servidor de base de datos, no el PC cliente.


Me estoy perdiendo muchas cosas de bases de datos. Sobre todo el tema de base de datos en distintas máquinas.
Quien sabe si con VirtualBox.  

Citar:

... un MySQL supervitaminado.


  

Citar:

..Los actualizo según el método de la botella de cerveza, que es un montón de trabajo, pero mantiene el parque de bichos más o menos homogéneo.


¿ Qué es eso ?. ¿ Cuando ya no tienen gas ?. ¿ Qué todos sean parecidos  (como si fuera la botella de la misma marca) ?
Eso si que es tecnicismo y lo demás son chorradas. Nunca dejas de aprender en la comunidad gambas. "El método de la botella de cerveza". La polla en vinagre.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Sabado, 23 May 2015, 09:48 ]
Responder citando    Descargar mensaje  
Mensaje Re: Contar, Agrupar, Ordenar 
 
Jorge:

Por mas que busco el método de la botella de la cerveza, lo único que encuentro es:

- Como enfriar rápidamente la cerveza. ( No veas como la gente se preocupa de esto ).
- Como abrir una cerveza de 20 maneras distintas.  

Uno se ha hecho famoso por abrirlas con el...culo.  

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Sabado, 23 May 2015, 10:07 ]
Responder citando    Descargar mensaje  
Mensaje Re: Contar, Agrupar, Ordenar 
 
Citar:
¿ Qué es eso ?. ¿ Cuando ya no tienen gas ?. ¿ Qué todos sean parecidos  (como si fuera la botella de la misma marca) ?
Eso si que es tecnicismo y lo demás son chorradas. Nunca dejas de aprender en la comunidad gambas. "El método de la botella de cerveza". La polla en vinagre.

Supongamos que tienes una estantería donde vas dejando las botellas de cerveza vacías que te has bebido. Dado que no estás para muchos trotes, lo que haces es poner la nueva en el sitio más cercano a tí y empujar las otras para hacerles sitio. Todas se desplazan un lugar... y la última, la más antigua cae al suelo.
Ese es el método. Compras un aparato nuevo y el más viejo (léase malo) lo tiras (Tirar: quitar piezas para repuestos y llevar al contenedor todo lo no reciclable). ¿Por qué da trabajo? porque, a diferencia de las cervezas, los ordenatas son modificables y varían su posición dentro de la estantería. Así al "tirar" el más débil, resulta que tenía una tarjeta de Video buena y dos módulos de RAM reciclabes. Se los pones al que ahora es el útlimo y con eso "adelanta" tres posiciones en la estantería. Pero, al cambiarle la tarjeta de vídeo, la que le quitas resulta que es mejor que la del ahora es el último, por lo que se la cambias y éste adelanta dos posiciones... etc. etc. Después de muchos cambios, la estantería se estabiliza y todo queda a la espera de que venga el próximo ordenata nuevo.

También se le llama el método del gallinero, por una cosa que hacen las gallinas: Establecen la jerarquía del gallinero a picotazos. Cuando metes una gallina nueva, por algún misterio, toda la jerarquía se elimina y vuelve a haber un reparto generalizado de picotazos hasta que todas vuelven a tener claro cual es su sitio...

Hace tantos años que utilizo la metáfora de las botellas de cerveza, que no recuerdo de dónde la saqué. No había internet entonces, algún libro, supongo...



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Sabado, 23 May 2015, 10:39 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron