Visualizzazione dei risultati da 1 a 1 su 1

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442

    [SQL] Ancora un'altra query

    Non ho voglia di popolare una base di dati, mi direste se vi sembra ok questa query?

    Dato il seguente schema relazionale, che modella i dati di una videoteca:
    UTENTE(NumTessera, Nome, Cognome, Città, Età)
    NOLEGGIO(NumT, TitoloF, Data, Note)
    FILM(Titolo, Genere, Anno, StatoCopia)
    Con vincoli di integrità referenziale:
    NOLEGGIO.NumT->UTENTE.NumTessera
    NOLEGGIO.TitoloF->FILM.Titolo

    Scrivere in SQL la query che determina l’età media degli utenti di Bologna che hanno noleggiato almeno un film nel periodo 1/1/2016 al 21/1/2016.


    Ho pensato di fare così:

    codice:
    select avg(distinct eta)
    from utente join noleggio on numtessera=numt
    where data>='1/1/2016' and data<='21/1/2016' and citta='Bologna'
    Temo però che ci sia un problema: se due o più utenti diversi ma con la stessa età hanno noleggiato un film in quelle date verranno esclusi dal conteggio e la media risulterà falsata. Se tolgo però il distinct ottengo comunque una media falsata dalla possibilità che uno stesso utente abbia noleggiato più volte un film nel periodo in esame.
    E' così?
    Mi sembrava troppo bello aver elaborato questa query in 5 minuti...

    Edit: forse potrei aver risolto così.

    select avg(eta)
    from utente
    where numtessera= ANY (select numt from noleggio where citta='bologna' and data=blabla);
    Ultima modifica di Jamie04; 24-07-2016 a 22:19

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.