Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

¿Cómo hago para que funcione un SELECT * junto con un COUNT(*)?

Estas en el tema de ¿Cómo hago para que funcione un SELECT * junto con un COUNT(*)? en el foro de Mysql en Foros del Web. Hola que tal!!! Tengo actualmente dos formas para consultar, son las siguientes: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT * FROM Registros y luego aparte ...
  #1 (permalink)  
Antiguo 08/05/2014, 19:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 147
Antigüedad: 15 años, 6 meses
Puntos: 3
Pregunta ¿Cómo hago para que funcione un SELECT * junto con un COUNT(*)?

Hola que tal!!!

Tengo actualmente dos formas para consultar, son las siguientes:

Código SQL:
Ver original
  1. SELECT * FROM Registros

y luego aparte tengo un:
Código SQL:
Ver original
  1. SELECT COUNT(*) AS Total FROM Registros


Mi pregunta es: Si no hay problema alguno al usar un:
Código SQL:
Ver original
  1. SELECT COUNT(*) AS Total, NombreReg, IDReg FROM Regostros

¿por qué no puedo hacer un SELECT * para no tener que estar especificando todos los campos?

Código SQL:
Ver original
  1. SELECT *, COUNT(*) AS Total FROM Registros

Si hago eso solo me devuelve EL PRIMER REGISTRO, y la suma de todos los registros como Total, pero yo quiero que me devuelva todos y cada uno de mis registros con la columna TOTAL que contenga la suma de todos los registros encontrados...

¿Alguien me podría indicar cómo lograrlo por favor?
  #2 (permalink)  
Antiguo 09/05/2014, 00:36
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 1 mes
Puntos: 9
Respuesta: ¿Cómo hago para que funcione un SELECT * junto con un COUNT(*)?

Hasta donde yo se tendrias que indicar todos los campos que quieres que te devuelva y el count.
Código MySQL:
Ver original
  1. SELECT campo1,  campo2,  campo3, COUNT(*) FROM Registros
No se si se podrá de otra forma.
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #3 (permalink)  
Antiguo 09/05/2014, 01:08
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: ¿Cómo hago para que funcione un SELECT * junto con un COUNT(*)?

Si yo también añaderia todos los campos que quieres contar.

Saludos.
  #4 (permalink)  
Antiguo 09/05/2014, 04:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿Cómo hago para que funcione un SELECT * junto con un COUNT(*)?

En realidad es incompatible usar uno o más campos con una función de agregación como COUNT() (o cualquier otra de ellas). Ningún DBMS lo acepta.
El objetivo de COUNT() es contar todos los registros que cumplan una condición de grupo, sea el total, o por subgrupos que se indiquen en el GROUP BY.
Pero si agrupas por todos esos campos, y además cuentas, contará un registro por cada uno de ellos, y pondrá resultado en esa misma columna.
En otras palabras, no puedes hacerlo sin fabricar el resultado en una subconsulta, pero lo único que lograrás en ese caso es repetir el mismo dato en todos y cada uno de los registros del resultado final, lo que implica recargar la salida con datos basura.

¿Por qué razón quieres hacer eso, exactamente?
Si es por hacer menos consultas para saber cuál es el total de resultados, hay ortos modos de lorgarlo sin necesidad de hacer cosas irreales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, junto, registro, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:17.