Oracle SQL:当一个值有两个可能的答案时,如何组合结果

时间:2013-01-24 10:30:23

标签: sql oracle

这是一个Oracle SQL难题。

我有一个问题,我有一张日期/水果/数量消耗表,而Fruit表中偶尔会出现重复,我想清理它。例如,我在同一天吃了3个苹果和2个苹果,我想把它结合起来说只吃了5个苹果。

我猜它会使用GROUP BY功能,但我无法想办法避免将所有苹果分组,而不是仅仅在特定日期对所有苹果进行分组。

    Date    Fruit   Eaten
    1-May   Lemon   2
    1-May   Apple   3
    1-May   Apple   2
    1-May   Orange  4
    2-May   Lemon   1
    2-May   Apple   2
    2-May   Orange  3
    2-May   Pear    4

这就是我想要的样子:

   Date     Fruit   Eaten
   1-May    Lemon   2
   1-May    Apple   5
   1-May    Orange  4
   2-May    Lemon   1
   2-May    Apple   2
   2-May    Orange  3
   2-May    Pear    4

2 个答案:

答案 0 :(得分:2)

试试这个:

select to_char(Date, 'DD-MON') as Date,Fruit,sum(Eaten) as Eaten
from Your_Table
group by to_char(Date, 'DD-MON') ,Fruit

或尝试使用trunc,如下所示:

select trunc(Date, 'MONTH') as Date,Fruit,sum(Eaten) as Eaten
from Your_Table
group by trunc(Date, 'MONTH') ,Fruit

答案 1 :(得分:1)

尝试对多个列进行分组:

select Date,Fruit,sum(Eaten)
from Your_Table
group by Date,Fruit