Oracle 11g adalah yang pertama mendukung PIVOT/UNPIVOT, jadi Anda harus menggunakan:
SELECT t.username,
MAX(CASE WHEN t.product = 'Chair' THEN t.numberpurchases ELSE NULL END) AS chair,
MAX(CASE WHEN t.product = 'Table' THEN t.numberpurchases ELSE NULL END) AS tbl,
MAX(CASE WHEN t.product = 'Bed' THEN t.numberpurchases ELSE NULL END) AS bed
FROM TABLE t
GROUP BY t.username
Anda dapat menggunakan DECODE, tetapi CASE telah didukung sejak 9i.