PostgreSQL: как объединить несколько строк?

У меня есть такая таблица, в которой хранятся результаты медицинского осмотра, дата отправки отчета и результат. На самом деле дата отправки основана на дате посещения клиники. У клиента может быть один или несколько отчетов (дата может быть разной)

---------------------------------------
|  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   |
---------------------------------------

Я хочу извлечь следующий отчет из приведенных выше данных.

---------------------------------------------------
|  client_id  |  result1  |  result2  |   resut3  |
---------------------------------------------------
|      1      |    A      |    B      |           |
|      2      |    D      |           |           |
|      3      |    A      |    C      |     E     |
|      4      |    D      |    E      |           |
|      5      |    B      |           |           |
---------------------------------------------------

Я работаю над Postgresql. функция "crossstab" здесь не будет работать, потому что "date_sent" не соответствует каждому клиенту.

Кто-нибудь может дать примерное представление о том, как его следует запрашивать?

14
задан thinzar00 30 September 2010 в 08:23
поделиться