Bases de Datos - Problema con el count

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado 1 puesto en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Problema con el count

Publicado por carlos (1 intervención) el 23/04/2018 23:12:31
Hola, tengo un examen dentro de un mes de bases de datos, y estoy algo confundido con el group by y el count.
Tengo esta select:

4-Nombre de los recintos y número de asientos del patio de butacas siempre que tengan más de 50 asientos en dicha zona

select count(*), r.recinto from zona z, asiento asi, recinto r where asi.codigozona=z.codigo and z.codigorecinto=r.codigo and Z.zona like 'BUTACA' group by r.recinto having count(*) >50

¿Por que, esta correcta? El resultado, devuelve el nombre y el numero de asientos. Lo que me confunde, es que pone el count (*) y sin decirle que cuente los asientos, los cuenta. El nombre del recinto claro, pero la cuenta de los asientos, y tengo alguna sql mas igual que esta, y no lo comprendo, y me quita el sueño de verdad, es la 2º vez que voy a esta asignatura.

Dejo la definicion de las tablas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
create table tipo (
  codigo char(4) primary key,
  descripcion varchar2(25)
);
create table recinto(
  codigo char(4) primary key,
  recinto varchar2(25) not null unique
);
create table espectaculo(
  codigo number(4) primary key,
  titulo varchar2(25) not null,
  fecha_final date,
  codigotipo char(4),
  codigorecinto char(4)
);
create table interprete (
  codigo char(4) primary key,
  nombre_artistico varchar2(45) not null
);
create table representacion (
  codigo number(4) primary key,
  fecha date not null,
  hora char(5) not null,
  codigoEspectaculo number(4)
);
create table actua(
  codigointerprete char(4),
  codigoespectaculo number(4),
  primary key (codigointerprete,codigoespectaculo)
);
create table zona(
  codigo number(4) primary key,
  zona varchar2(25),
  precio number(7,2),
  codigorecinto char(4)
);
create table asiento (
  fila number(2),
  numero number(2),
  codigozona number(4),
  primary key (fila,numero,codigozona)
);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 71
Bronce
Ha mantenido su posición en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Problema con el count

Publicado por Juan (52 intervenciones) el 24/04/2018 16:57:05
Buenas Carlos

Si te fijas en tu SELECT tienes el COUNT(*) también entonces es lógico que te devuelva en el select el número de asientos también, si lo quitases del SELECT éste no aparecería, recuerda que en el SELECT va la información que quieres mostrar de la consulta (los campos vaya o las operaciones hechas sobre dichos campos, en este caso contar).

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar