如何 select 并在配置单元中从水平到垂直组织日期

how to select and organize the date from horizontal to vertical in hive

我有一个 table 结构如下。

    Materialno  |   Rate    |   Month
    s1          |   20      |   jan
    s1          |   30      |   feb
    s1          |   40      |   mar
    s2          |   20      |   jan
    s2          |   30      |   feb

我需要查询 table 结构并将其转换为以下格式

  Materialno    | jan_rate  |feb_rate   |mar_rate
        s1      |   20      |   30      |   40
        s2      |   20      |   30      |

这在配置单元中可行吗?

是:

select Materialno, 
       max(if(Month='jan',Rate,0)) as jan_rate,
       max(if(Month='feb',Rate,0)) as feb_rate,
       max(if(Month='mar',Rate,0)) as mar_rate
       from inputTable group by Materialno;

假设您每个月有一个费率值material否',这将起作用,否则将选择最大值。