Ho una domanda che fa un numero di join e ha alcuni criteri nella clausola WHERE, e sto finendo con un risultato che appare essenzialmente come questo:gruppo SQL problema
| userId | date | otherData |
|--------+------------+------------|
| 1 | 2008-01-01 | different |
| 1 | 2009-01-01 | info |
| 1 | 2010-01-01 | for |
| 2 | 2008-01-01 | each |
| 3 | 2008-01-01 | row |
| 3 | 2009-01-01 | here |
Così , in sostanza per ogni utente, ci saranno una o più date nel passato e 0 o più date in futuro.
Devo in qualche modo ridurre il set di dati a una riga per utente, selezionando solo la riga che ha la data passata più recente. Vale a dire, con tutto ciò che la magia GROUP BY
o HAVING
clausola è aggiunto, il risultato dall'alto sarebbe simile a questa:
| userId | date | otherData |
|--------+------------+------------|
| 1 | 2009-01-01 | info |
| 2 | 2008-01-01 | each |
| 3 | 2009-01-01 | here |
funziona bene !! ma aggiungendo DISTINCT non rimuovendo valori duplicati, nessun suggerimento? – Rakesh