Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    15

    [SQL] Bloccato sul group by

    Ciao a tutti sto studiando SQL e la prof ha dato un esercizio su cui mi sono impiantato un po, perciò vorrei chiarimenti in merito. L'esercizio è il seguente:

    Sono date le relazioni seguenti (le chiavi primarie sono evidenziate):

    TAVOLO(NumTavolo, NumPosti)
    PIATTO(CodP, DescrizioneP, Prezzo)
    ORDINAZIONE(NumOrdinazione, Data, NumTavolo)
    PIATTO-ORDINATO(CodP, NumOrdinazione, Quantità)
    INGREDIENTI(CodP, NomeIngrediente)

    Esprimere la seguente interrogazione in SQL
    (a) Per i piatti con prezzo maggiore di 10 euro ordinati in almeno 10 tavoli diversi nella stessa
    giornata, visualizzare il codice del piatto, la descrizione, la quantitµa totale di piatti ordinati
    nella giornata e l'importo totale corrispondente.

    Ora faccio il join tra PIATTO P, ORDINAZIONE O, PIATTO ORDINATO PO
    SELECT CodP, Descrizione, Data, NumTavolo
    FROM P,O,PO
    WHERE P.CodP>10 AND P.CodP=PO.CodP AND PO.NumOrdinazione=O.NumOrdinazione

    E ora ecco il mio problema...siccome penso di dover usare il GROUP BY mi è venuto un dubbio: se io raggruppo per Data, CodP laddove la data è uguale, mi raggruppa per CodP (come farebbe con l'ordinamento) o no?

  2. #2
    non ho ben capito, ma la GROUP BY non fa anche ORDER BY. Se vuoi un ordinamento devi aggiungerlo

  3. #3
    Ciao,
    in risposta a:
    E ora ecco il mio problema...siccome penso di dover usare il GROUP BY mi è venuto un dubbio: se io raggruppo per Data, CodP laddove la data è uguale, mi raggruppa per CodP (come farebbe con l'ordinamento) o no?
    il comando GROUP BY Data, CodP mostrerà i valori raggruppati (somme, conteggi) sui diversi piatti nelle diverse date. Es:
    codice:
    DATA	CODP	COUNT
    18-ott	AA	4
    18-ott	BB	5
    18-ott	CC	6
    18-ott	DD	4
    19-ott	AA	8
    19-ott	CC	3
    19-ott	DD	7
    Ciao
    Mik

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    15
    Originariamente inviato da Holidaysoft.it
    codice:
    DATA	CODP	COUNT
    18-ott	AA	4
    18-ott	BB	5
    18-ott	CC	6
    18-ott	DD	4
    19-ott	AA	8
    19-ott	CC	3
    19-ott	DD	7
    Quindi è come se facesse questo passaggio intermedio...
    codice:
    DATA	CODP	
    18-ott	AA	
    18-ott	AA	
    18-ott	AA	
    18-ott	AA	
    18-ott	BB	
    18-ott	BB	
    18-ott	BB	
    18-ott	BB	
    18-ott	BB	
    18-ott	CC	
    18-ott	CC	
    18-ott	CC	
    18-ott	CC	
    18-ott	CC	
    18-ott	CC	
    18-ott	DD	
    18-ott	DD	
    18-ott	DD	
    18-ott	DD	
    19-ott	AA	
    19-ott	AA	
    19-ott	AA	
    19-ott	AA	
    19-ott	AA	
    19-ott	AA	
    19-ott	AA	
    19-ott	AA	
    19-ott	CC	
    19-ott	CC	
    19-ott	CC	
    19-ott	DD	
    19-ott	DD	
    19-ott	DD	
    19-ott	DD	
    19-ott	DD	
    19-ott	DD	
    19-ott	DD
    Per poi restituire la tua tabella giusto?

  5. #5
    Non ci sono passaggi intermedi, ma se può esserti di aiuto per capire la logica, si.
    La GROUP BY schiaccia, raggruppa, restituisce valori univoci, fonde i valori sulle dimensioni specificate nella GROUP BY

    Ps: l'esercizio proposto dalla prof ... non è mica tanto facile....in bocca al lupo, se ti occorre aiuto, fai un cenno

    Ciao
    Mik

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.