MySQL - vistas en MySql

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

vistas en MySql

Publicado por Faiza (10 intervenciones) el 06/11/2020 21:23:41
hola, alguien me puede ayudar a escribir esas vistas porfavor:

"" listar todas las Universidades o "centros de afiliación" y el numero de investigadores afiliados a cada una de ellas ordenadas según la cantidad de afiliados, de mayor a menor*/""

""Seleccionar la Universidad con mayor numero de afiliados y listar el nombre de los investigadores afiliados a dicha Universidad.

""
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
Imágen de perfil de Manuel
Val: 19
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en MySql

Publicado por Manuel (10 intervenciones) el 06/11/2020 22:04:37
Si no pones tu estructura de base de datos, pues jodido es. Una vista noes más que una consulta que usarás como una tabla (normalmente una consulta compleja que el resultado puede ser interesante como si fuera una tabla lista para usar).
Básicamente para crear una vista es algo tan simple como:

1
CREATE VIEW el_nombre_de_la_vista AS SELECT * FROM una_tabla;

Aunque normalmente una vista de una consulta tan simple no tiene sentido y sería una consulta de cierta complejidad, ya sea para usarla como fuente de otra consulta, como si fuera una tabla con la que trabajar, etc. Y la consulta esa suele implicar varias tablas con JOINS, puede que operaciones de conjunto como UNION, etc.

Probablemente en tu caso, pues tengas una tabla de investigadores (los cuales estarán relacionados con la siguiente por un campo), otra de universidades y la primera es relativamente sencilla, usando el id de la universidad, la operación SUM, usando ORDER BY por ese valor calculado, etc. La segunda, con subconsultas que te devuelvan el número de afiliados en un nuevo campo, TOP para decir que solo quieres que muestre un valor, ORDER BY para ordenar...

Pero si no publicas la estructura (e idealmente subir las tablas con algunos datos), pues más allá no se puede llegar. Porque la consulta exacta de cada vista, pues depende de la estructura exacta de las tablas, las relaciones entre ellas, etc.
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
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en MySql

Publicado por Faiza (10 intervenciones) el 08/11/2020 22:26:01
hola, para la 1º pregunta, mi programa era:

1
2
3
4
5
6
7
8
SELECT DISTINCT university   AS centro_afiliacion FROM afiliations ;
SELECT  COUNT( papersauthors.ref_author)AS nº_investigador
        FROM (authors
        JOIN papersauthors ON (authors.ref_author= papersauthors.ref_author)
        JOIN authorafiliation ON (papersauthors.ref_author = authorafiliation.ref_author)
        JOIN afiliations ON (authorafiliation.ref_afiliation = afiliations.ref_afiliation))
        WHERE(university  IN (SELECT DISTINCT university AS centro_afiliacion FROM afiliations ))
ORDER BY nº_investigador ASC;

#########el resultado es:####
centro de afiliacion

'Harvard_University'
'Massachusetts_Institute_of_Technology'
'Stanford_University'
.....................................
.....................

nº_investigador

1590

pero me da el nº total de investigadores, y yo quiero tener el nº de investigadores afiliados a cada universidad???
me puedes decir donde esta el error porfavor?
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