# Connection: root@localhost:3306 # Host: localhost # Saved: 2008-01-07 23:30:53 # USE musei; # --------- Raggruppamenti ------------------ # Raggruppa tutte le opere per museo indicandone il numero SELECT Musei.NomeMuseo, COUNT(*) AS Numero_Opere FROM Opere INNER JOIN Musei ON Opere.Id_Museo = Musei.Id_Museo GROUP BY Musei.Id_Museo; # Raggruppa tutte le opere per nazionalitą dell'artista indicandone il numero SELECT NomeNazione, COUNT(*) AS Numero_Opere FROM (Opere INNER JOIN Artisti ON Opere.Id_Artista = Artisti.Id_Artista) INNER JOIN Nazioni ON Artisti.Id_Nazione = Nazioni.Id_Nazione GROUP BY Nazioni.Id_Nazione # Raggruppa tutte le opere raggruppandole per tipo e contandole SELECT Tipi_Opere.Tipo , COUNT(*) AS Numero_Opere FROM Opere INNER JOIN Tipi_Opere ON Opere.Id_Tipo = Tipi_Opere.Id_Tipo GROUP BY Tipi_Opere.Id_Tipo # Individuare l'opera pił recente in ognuno dei musei SELECT NomeMuseo , MAX(Anno) AS Anno_Opera FROM Opere INNER JOIN Musei ON Opere.Id_Museo = Musei.Id_Museo GROUP BY Musei.Id_Museo; # Raggruppamento multiplo; raggruppare le opere per tipo opera e museo contandole # Il raggruppamento multiplo impone che gli elementi raggruppati siano catalogati come coppie # (per le coppie per le qualii non vi sono elementi dovuti al raggruppamento non appare nessuna tupla) SELECT Tipo, NomeMuseo, COUNT(*) AS Numero_Opere FROM (Opere INNER JOIN Musei ON Opere.Id_Museo = Musei.Id_Museo) INNER JOIN Tipi_Opere ON Opere.Id_Tipo = Tipi_Opere.Id_Tipo GROUP BY Musei.Id_Museo, Tipi_Opere.Id_Tipo ; # ----------------- Ordinamenti ------------------- # Ordinare le opere per Anno SELECT * FROM Opere ORDER BY Anno; # ordinare le opere secondo l'ordine alfabetico del titolo SELECT * FROM Opere ORDER BY Titolo; # ordinare le opere secondo anno e (in seconda battuta) titolo # (in questo caso viene prima effettuato un ordinamento per titolo e in base all' anno) SELECT * FROM Opere ORDER BY Anno, Titolo; # opere ordinate per cittą ove risiedono SELECT Titolo, NomeCitta FROM (Opere INNER JOIN Musei ON Opere.Id_Museo = Musei.Id_Museo) INNER JOIN Citta ON Musei.Id_Citta= Citta.Id_Citta ORDER BY NomeCitta