58

私はOracle SQL Developerを使用しています。基本的に、列を保持する写真の表があります。

[DATE_CREATED(日付), NUM_of_PICTURES(整数)]

select * を実行すると、次のような出力が得られます。

01-May-12    12
02-May-12    15
03-May-12    09
...
...
01-Jun-12    20
...
etc.

これらの写真の合計を、毎日ではなく毎月の数値に集計しようとしています。

私は次のようなことを試みました:

select Month(DATE_CREATED), sum(Num_of_Pictures))
from pictures_table
group by Month(DATE_CREATED);

これはエラーを出力します:

ORA-00904: "MONTH": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:
Error at Line: 5 Column: 9

Month 関数が間違っていますか?

4

5 に答える 5

125

出力に年を含める傾向があります。一方通行:

select to_char(DATE_CREATED, 'YYYY-MM'), sum(Num_of_Pictures)
from pictures_table
group by to_char(DATE_CREATED, 'YYYY-MM')
order by 1

別の方法 (より標準的な SQL):

select extract(year from date_created) as yr, extract(month from date_created) as mon,
       sum(Num_of_Pictures)
from pictures_table
group by extract(year from date_created), extract(month from date_created)
order by yr, mon;

おそらくこれらを順番に並べる必要があるため、order by を覚えておいてください。また、group by の後に行が返される順序について保証はありません。

于 2012-07-17T23:53:47.803 に答える
17

オラクルの場合:

select EXTRACT(month from DATE_CREATED), sum(Num_of_Pictures)
from pictures_table
group by EXTRACT(month from DATE_CREATED);
于 2012-07-17T22:37:53.347 に答える
-3

以下を使用できます。

    select FK_Items,Sum(PoiQuantity) Quantity  from PurchaseOrderItems POI
    left join PurchaseOrder PO ON po.ID_PurchaseOrder=poi.FK_PurchaseOrder
    group by FK_Items,DATEPART(MONTH, TransDate)
于 2016-02-11T11:46:40.740 に答える