擅长:python、mysql、java
<p>在Spark SQL中,您可以使用<code>union all</code>和条件聚合取消pivot/pivot:</p>
<pre><code>select srab, month,
max(case when srsbtp = 'D' then avgm1 end) as d,
max(case when srsbtp = 'C' then avgm1 end) as c
from (
select srab, srsbtp, 'avgm1' as month, avgm1 from mytable
union all srab, srsbtp, 'avgm2', avgm2 from mytable
union all srab, srsbtp, 'avgm3', avgm3 from mytable
...
) t
gorup by srab, month
</code></pre>