姓名 套餐
张三 66元
张三 96元
李四 126元
王五 156元
王五 46元
王五 96元
王五 66元
以上怎样变成
姓名 46元 66元 96元 126元 156元
张三 1 1
李四 1
王五 1 1 1 1
请高手指点
------解决方案--------------------
select 姓名,
sum(decode(套餐,'46元',1)) as "46元",
sum(decode(套餐,'66元',1)) as "66元",
sum(decode(套餐,'96元',1)) as "96元",
sum(decode(套餐,'126元',1)) as "126元",
sum(decode(套餐,'156元',1)) as "156元"
from T
group by 姓名
order by 姓名
------解决方案--------------------
11G以后版本可用
SELECT *
FROM T
PIVOT (
SUM(1)
FOR 套餐
IN ('46元','66元','96元','126元','156元')
)