Tema: 61. Id Pregunta: 3996.

Responder
juancac
Usuario registrado
Mensajes: 24
Registrado: 09 Ene 2019, 15:34
Agradecido: 0
Agradecimiento recibido: 0

Tema: 61. Id Pregunta: 3996.

Mensaje por juancac »

78) En el lenguaje SQL, la función de agregado COUNT, aplicada sobre una columna, contabiliza… [BIEN] Ocultar respuesta No contestar
Tema: 61. Id Pregunta: 3996.
a) Nº de filas recuperadas por la consulta
b) Nº de filas recuperadas por la consulta, exceptuando aquellas en que la columna referenciada tenga valor nulo
c) Nº de filas recuperadas por la consulta, incluyendo valores duplicados o nulos en la columna
d) Si la columna sobre la que se aplica tiene valor nulo en todas las filas, la función COUNT devolverá 'nulo'

La respuesta correcta según la herramienta es la c). Pero según los apuntes:
...es decir, la función count aplicada sobre un campo concreto sólo cuenta las filas en las que dicho campo no es nulo.
Si no estoy entediendo mal la pregunta, sería un error.

GeoTIC
PreparaTIC28
Mensajes: 2
Registrado: 26 Mar 2019, 12:57
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 61. Id Pregunta: 3996.

Mensaje por GeoTIC »

Hola! efectivamente, sería la opción B.

Avatar de Usuario
VicCV
PreparaTIC26
Mensajes: 51
Registrado: 21 May 2018, 15:14
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 61. Id Pregunta: 3996.

Mensaje por VicCV »

Buenas:

Efectivamente si se usa count sobre una columna, los valores null no se cuentan. Para detallar, si no se especifica la columna (count(*) o count(1)), se devolverá el número de filas de la consulta, independientemente de que alguna pueda tener valores null.

Un saludo

pixelmin
Usuario registrado
Mensajes: 31
Registrado: 01 Ago 2018, 18:16
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 61. Id Pregunta: 3996.

Mensaje por pixelmin »

Justo venía a preguntar esa misma duda. De acuerdo con lo que han dicho.

Avatar de Usuario
palindromo
Usuario registrado
Mensajes: 555
Registrado: 21 Abr 2018, 15:05
Ubicación: Madrid
Agradecido: 7 veces
Agradecimiento recibido: 9 veces

Re: Tema: 61. Id Pregunta: 3996.

Mensaje por palindromo »

Igual es exceso de información, pero para muestra, un ejemplo:

Código: Seleccionar todo

-- Una tabla sencilla con nombres de personas y mascotas
CREATE TABLE `general`.`test_001` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `nombre_persona` VARCHAR(45) NULL DEFAULT NULL,
  `nombre_mascota` VARCHAR(45) NULL DEFAULT NULL,
  PRIMARY KEY (`idtest_001`));

-- Algunas de las personas no tienen mascota (valores NULL en nombre_mascota)
INSERT INTO `test_001` (`nombre_persona`, `nombre_mascota`) VALUES ('Juan', 'Toby');
INSERT INTO `test_001` (`nombre_persona`, `nombre_mascota`) VALUES ('Pepe', 'Rosca');
INSERT INTO `test_001` (`nombre_persona`) VALUES ('María');
INSERT INTO `test_001` (`nombre_persona`, `nombre_mascota`) VALUES ('Antonia', 'Chuli');
INSERT INTO `test_001` (`nombre_persona`, `nombre_mascota`) VALUES ('Aitana', 'Sisa');
INSERT INTO `test_001` (`nombre_persona`) VALUES ('Mariano');
Y, ahora, a consultar:

Código: Seleccionar todo

select count(*) from test_001;
6
select count(0) from test_001;
6
select count(nombre_mascota) from test_001;
4
Es decir, al consultar por columna (último caso), NO se tienen en cuenta los valores NULL.
Al consultar por registros completos (count(*) o count(0)), como la tabla tiene una clave primaria (id), contabiliza tantos registros distintos como valores diferentes tiene la clave primaria (6 en este caso); al hacer la consulta acotada a la columna count(nombre_mascota), se restringe a los diferentes valores que ésta toma (4).
Desde la barrera.

Responder

Volver a “PREGUNTAS TEST - ERRORES Y DUDAS”