【问题标题】:How to display months in select columns in Oracle? [duplicate]如何在 Oracle 的选择列中显示月份? [复制]
【发布时间】:2021-10-11 22:22:00
【问题描述】:

我的数据库中有一组数据 - 请参见以下示例:

Food      CONSUMPTION  DATE_INSERTED
--------  -----------  -------------
Burger              2  07/10/2021
Fries               1  08/10/2021
Burger              2  08/10/2021
Chicken             1  07/12/2021
Burger              1  08/15/2021
Fries               2  08/11/2021   

有了这个,我想创建一个这样的查询来显示这个输出:

Food      July  August  September  October
--------  ----  ------  ---------  -------
Burger       2       3          0        0
Fries        0       3          0        0
Chicken      1       0          0        0

我实际上是在 SQL Server 中执行此操作,但我很难在 Oracle 中显示输出。

【问题讨论】:

    标签: sql oracle oracle11g pivot


    【解决方案1】:

    方法如下。

    SQL> select food,
      2    sum(case when to_char(date_inserted, 'mm') = '07' then consumption else 0 end) as July,
      3    sum(case when to_char(date_inserted, 'mm') = '08' then consumption else 0 end) as August,
      4    sum(case when to_char(date_inserted, 'mm') = '09' then consumption else 0 end) as September,
      5    sum(case when to_char(date_inserted, 'mm') = '10' then consumption else 0 end) as October
      6  from food
      7  group by food
      8  order by food;
    
    FOOD             JULY     AUGUST  SEPTEMBER    OCTOBER
    ---------- ---------- ---------- ---------- ----------
    Burger              2          3          0          0
    Chicken             1          0          0          0
    Fries               0          3          0          0
    
    SQL>
    

    如果需要/必须添加其他月份,也可以添加。

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 2015-12-29
      • 2019-02-13
      相关资源
      最近更新 更多