Ho una tabella come questa per salvare i risultati di un controllo medico e la data del rapporto inviato e il risultato. In realtà la data di invio è basata sulla data di clinic_visit. Un cliente può avere uno o più rapporti (la data può variare)PostgreSQL: come combinare più righe?
---------------------------------------
| client_id | date_sent | result |
---------------------------------------
| 1 | 2001 | A |
| 1 | 2002 | B |
| 2 | 2002 | D |
| 3 | 2001 | A |
| 3 | 2003 | C |
| 3 | 2005 | E |
| 4 | 2002 | D |
| 4 | 2004 | E |
| 5 | 2004 | B |
---------------------------------------
Desidero estrarre il seguente rapporto dai dati di cui sopra.
---------------------------------------------------
| client_id | result1 | result2 | resut3 |
---------------------------------------------------
| 1 | A | B | |
| 2 | D | | |
| 3 | A | C | E |
| 4 | D | E | |
| 5 | B | | |
---------------------------------------------------
Sto lavorando su Postgresql. la funzione "crosstab" non funzionerà qui perché "date_sent" non è coerente per ogni client.
Qualcuno può dare un'idea approssimativa di come dovrebbe essere richiesto?
La soluzione funziona, ma penso che l'OP desideri che i dati siano tabulati come nella domanda, in modo che sia facile vedere dove sono le voci vuote (il client 1 non ha alcun risultato E per esempio). – SabreWolfy
@SabreWolfy: aggiornato –
Questa risposta risolve il problema e dovrebbe essere accettata dall'OP. – SabreWolfy