2016-07-21 9 views
0

私は昨日から予約数を取得しようとしています。PostgreSQL:昨日のカウントを取得しようとしています

SELECT COUNT(distinct be.booking_id) AS "Number of Bookings Approved Today", 
     TO_CHAR(be.created_at, 'yyyy-mm-dd') as "id" 
FROM booking_events be 
WHERE be.event IN ('approve', 'instant_approve') AND 
     be.created_at > TIMESTAMP 'yesterday' AND 
     be.created_at < TIMESTAMP 'today' 
GROUP BY be.created_at; 

は今、コードの上に文句を言わない私は昨日からの予約の数の実際の数を表示してみましょう。ここに私のコードです。

Date   # of bookings 
<yesterday's date>  1 
<yesterday's date>  1 
<yesterday's date>  1 
<yesterday's date>  1 
<yesterday's date>  1 
<yesterday's date>  1 
<yesterday's date>  1 

私はそれがこのような昨日の日付の合計数を返したい:むしろそれは、このようなすべての行を取得

Date,   # of bookings 
<yesterday's date>  7 

は、誰かが私を助けることができることを望みます。それはおそらく簡単な修正ですが、私はそれの周りに私の脳をラップすることはできません!

+1

'group by'句を' TO_CHAR(be.created_at、 'yyyy-mm-dd')に変更しようとしています。これはグループ化をねじ込むタイムデータも含むタイムスタンプだと思います。 – jpw

+0

私はちょうどそれを 'GROUP BY 2'を使って私自身でしました。とにかく、ありがとう! – DBE7

答えて

1

おそらくbe.created_atは時間部分のタイムスタンプですか?

group by句をTO_CHAR(be.created_at, 'yyyy-mm-dd')に変更して、グループ化が日付部分のみで行われるようにしてください。または、group byを使用して、select文の列を示す序数をgroup by 2(2番目の列はサンプルクエリの日付)にグループ化できます。

0

私はちょうどGROUP BY 2にしなければならないことに気付きました。 @jpwはその背後にある理由をコメントしました!

関連する問題