我有一个这样的表:
表1: ID 号,产品 varchar2,参数 varchar2,值 AnyData
填满后,它看起来像这样:
我想创建一个视图,例如结果是:
我尝试了以下查询:
select * from
(select ARGUMENT, VALUE from Table)
pivot
(first(VALUE) for ARGUMENT in ('Weight','Size','First Use'))
我尝试了两种聚合功能:第一和最大。
对于他们两个,我都会遇到以下错误:
我确实了解这两个错误。数据透视查询可以像这样工作。
但是请问有人知道达到所需结果的另一种方法吗?
谢谢。 干杯,
答案 0 :(得分:0)
我将使用条件加重功能来执行枢轴操作。
select Product,
MAX(CASE WHEN ARGUMENT = 'Weight' THEN "VALUE" END) Weight,
MAX(CASE WHEN ARGUMENT = 'Size' THEN "VALUE" END) Size,
MAX(CASE WHEN ARGUMENT = 'First Use' THEN "VALUE" END) FirstUse
from
(
select
Product,
ARGUMENT,
"VALUE"
from Table
) t1
GROUP BY Product
如果您使用同一张表,则可以尝试选择表而不是直接子查询。
select Product,
MAX(CASE WHEN ARGUMENT = 'Weight' THEN "VALUE" END) Weight,
MAX(CASE WHEN ARGUMENT = 'Size' THEN "VALUE" END) Size,
MAX(CASE WHEN ARGUMENT = 'First Use' THEN "VALUE" END) FirstUse
from Table
GROUP BY Product