Closed gnacrur closed 5 years ago
Hasta donde yo se, creo que el resultado es el mismo 😀. ~Quizás solo hay un tema en poner el asterisco en vez de sólo el P.pid
🤔, dado que poner el *
implica contar todas las filas distintas (agrupadas por jid
y nombre
), y eso puede contar más filas que contar solo las filas que tienen un pid
distinto~ es lo mismo 😁.
Hola, en el primer caso, al no hacer GROUP BY por el nombre, no puedes seleccionar el nombre (en general no puedes seleccionar columnas que no estén dentro del group by).
Con respecto a la diferencia entre el *COUNT( ) y el COUNT(P.pid) en este caso* es lo mismo, puesto que COUNT( ) cuenta filas y como el pid es KEY, contar las filas será equivalente a contar los pid (dado que cada fila tiene un pid).
Para complementar: La única manera que un COUNT(columna) sea distinto a un *COUNT( )** es que algunas filas no posean el atributo columna (es decir, que tengan nulo en esa columna) y en ese caso esa fila no se cuenta.
Finalmente, si quisieramos contar, por ejemplo, todos los nombres distintos de juegos, para asegurarnos de que no cuente los repetidos, debemos hacer COUNT(DISTINTC nombre).
Para la pregunta 6 la solución de la ayudantía fue la siguiente:
Me gustaría saber si funcionaría lo siguiente o sino porque no sirve:
Donde los cambios que importantes son el * del COUNT, que en group by no puse J.nombre y que no hice WHERE ALL sino que comparé las partidas con toda la tabla anidada.