sql >> データベース >  >> RDS >> PostgreSQL

月をテキストに変換しながら並べ替える

    date_trunc() 代わりは。 dateを切り捨てます /timestamp 与えられたユニットに。

    2つの理由:

    1. 2012年のように、特定の年の8月の注文数が必要です。 表のすべての年の8月の合計。 date_trunc('month', orderdate) まさにそれを行い、偶然に複数年を混ぜることを防ぎます。複数年にわたって複数の行を取得します。

    2. 両方ともORDER BYできます および GROUP BY この1つの式では、クエリが少し速くなります。

    SELECT to_char(date_trunc('month', orderdate), 'Mon') AS "Month" -- repeat expr.
          ,count(*) AS "Quantity"
    FROM   orders
    GROUP  BY date_trunc('month', orderdate)   -- 1 item covers it
    ORDER  BY date_trunc('month', orderdate);
    

    db <> fiddle こちら
    古い sqlfiddle

    完全な月の名前の場合、最初の例のように、次のようになります。

    to_char(date_col, 'Month')
    

    英語以外のローカライズされた名前の場合:

    to_char(date_col, 'TMMonth')
    

    詳細はマニュアルに記載されています。



    1. コメントと返信のPHPアプリケーションの再帰関数

    2. Python MySQL-SELECTは機能しますが、DELETEは機能しませんか?

    3. 正規表現文字クラスを持つCDbCriteriaパラメーター

    4. ミリ秒単位のDateTimeの表現?