Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Query group by in sql

  1. #1

    Query group by in sql

    La tabella ha una struttura tipo:

    ID | ORDINE | RIGA

    e per esempio i dati sono:

    1 | 1 | 1
    2 | 1 | 2
    3 | 1 | 3
    4 | 1 | 2
    5 | 2 | 1

    Io voglio estrapolare tutti gli ordini con ORDINE=1 che abbiano il massimo id per ogni riga, ovvero:

    1 | 1 | 1
    4 | 1 | 2
    3 | 1 | 3

    Ho provato a fare

    SELECT `id`,`ordine`,`riga` FROM `msg` WHERE id_ordine=1 GROUP BY (MAX(nro_riga))

    ma ricevo errore.....qual è la soluzione ?
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  2. #2
    Non ho capito, come dici estrarresti un solo risultato...
    Ciao!

  3. #3
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Così?

    codice:
    SELECT MAX(id), ordine, riga FROM `msg` WHERE ordine=1 GROUP BY riga
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  4. #4
    Originariamente inviato da Sky
    Così?

    codice:
    SELECT MAX(id), ordine, riga FROM `msg` WHERE ordine=1 GROUP BY riga
    In effetti questa funziona, ma non nel mio caso in quanto avevo semplificato il mio problema, che è questo

    La tabella ha una struttura tipo:

    ID | ORDINE | RIGA | COMMENTO

    e per esempio i dati sono:

    1 | 1 | 1 | commento 1
    2 | 1 | 2 | commento 2
    3 | 1 | 3 | commento 3
    4 | 1 | 2 | commento 4
    5 | 2 | 1 | commento 5

    E quello che voglio estrapolare è questo

    1 | 1 | 1 | commento 1
    4 | 1 | 2 | commento 4
    3 | 1 | 3 | commento 3

    Con la query che mi hai suggerito invece vedo questo:

    1 | 1 | 1 | commento 1
    4 | 1 | 2 | commento 2
    3 | 1 | 3 | commento 3
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  5. #5
    allora, la clausola where ti filtra i dati

    1 | 1 | 1 | commento 1
    2 | 1 | 2 | commento 2
    3 | 1 | 3 | commento 3
    4 | 1 | 2 | commento 4

    di questi tu quali vuoi, e perchè?
    Ciao!

  6. #6
    Allora ti spiego il funzionamento dello script:
    Si tratta di un ordine che può essere costituito da + righe, ogni riga può subire modifiche, e se queste ci sono avranno lo stesso numero di riga delle righe modificate, quindi nel nostro esempio:

    1 | 1 | 1 | commento 1
    2 | 1 | 2 | commento 2
    3 | 1 | 3 | commento 3
    4 | 1 | 2 | commento 4 in risposta al commento 2

    Io per ogni riga voglio visualizzare il commento o, se esiste, l' ultima risposta al commento, nel nostro caso:

    1 | 1 | 1 | commento 1
    4 | 1 | 2 | commento 4 in risposta al commento 2
    3 | 1 | 3 | commento 3

    In pratica voglio estrarre un solo record per linea associando a ciascuno il commeno con id più grande.....spero di essere stato chiaro
    www.fulleffect.it
    Il miglior sito hip hop in Italia.

    FAIEL aka Raffaele Madaro
    FORZA BARI !!

  7. #7

  8. #8
    prova a chiedere in database.
    Ciao!

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.