Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    78

    [SQL] estrazione dati con group by

    Ciao,

    Avrei necessità di estrarre dei dati da una tabella raggruppati in un certo modo, prendendo solo la riga piu' recente per ogni Uid e ogni QID.

    ho ho la seguente tabella:

    Codice PHP:
    UQID    QID    Uid    Score    Submitted
    ----------------------------------------------
    24    59    aaa    0    10-feb-10
    29    59    aaa    66    11
    -feb-10
    28    59    bbb    11    10
    -feb-10
    30    59    bbb    11    17
    -feb-10
    31    59    bbb    11    18
    -feb-10
    25    59    ccc    22    10
    -feb-10
    26    59    ccc    55    11
    -feb-10
    27    59    ccc    44    12
    -feb-10
    32    60    bbb    0    17
    -feb-10
    33    60    bbb    33    18
    -feb-10 
    Mi piacerebbe estrarre per ragguppato per ogni QID e UID lo score piu' recente, ovvero:

    Codice PHP:
    UQID    QID    Uid    Score    Submitted
    ----------------------------------------------
    29    59    aaa    66    11-feb-10
    31    59    bbb    11    18
    -feb-10
    27    59    ccc    44    12
    -feb-10
    33    60    bbb    33    18
    -feb-10 
    quello che ho fatto é questo:
    Codice PHP:
    SELECT tabella.QIDtabella.UidMAX(tabella.Submitted)
    FROM tabella
    GROUP BY tabella
    .QIDtabella.Uid
    Che restituisce questo:
    Codice PHP:
    QID    Uid    MAX
    ----------------------------
    59    aaa    11-feb-10
    59    bbb    18
    -feb-10
    59    ccc    12
    -feb-10
    60    bbb    18
    -feb-10 
    Come faccio a far apparire i relativi Score e QUID, per le righe estratte? Non posso creare una tabella in piu' perché ho accesso al database solo in lettura.
    Qualche suggerimento?

    Grazie
    blp

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Non serve la group by nel tuo caso ma una subquery
    A meno di errori di sintassi dovrebbe andare. Fammi sapere

    codice:
    SELECT UQID, QID, ID, SCORE, SUBMITTED
    FROM tabella
    WHERE submitted = 
    (SELECT MAX(submitted)
    FROM tabella T2
    WHERE T2.qid = tabella.qid
    and T2.id = tabella.id)
    In pratica per la coppia qid, id (se ho ben capito devi prendere per questa coppia l'ultimo valore), estraggo il max tra le date nella subquery e quindi prendi tutte le info che vuoi nella query esterna.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    78
    Grazie per la tua risposta, l'ho utilizzato per andare avanti e finalmente ci sono riuscito, grazie

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.