1

私は現在、Metabase を使用して、いくつかの社内指標のライブ ダッシュボードをまとめています。クエリしようとしているものの 1 つは、モバイル アプリでのトランザクションの 24 時間のローリング ウィンドウです。メタベースには、定義された期間の値の変化を比較できる「スマート ナンバー」と呼ばれる便利な視覚化ツールがあります。このような。

過去 24 時間とその前の 24 時間を比較できるように、24 時間間隔でデータを出力するクエリを作成するのに問題があります。date_trunc 関数を使用してトランザクションを時間で分割し、結果を過去 24 時間に制限しようとしましたが、トランザクションがない時間は出力されません。また、以下のコードに示すようにフィルター関数を使用してみましたが、「スマート番号」が機能するにはデータを転置する必要があります。この問題にどのように取り組むべきかについて、誰か提案がありますか?

私のアプローチの例:

SELECT 

(DATE_TRUNC('hour', (reservations.created_at::timestamptz)))  as hour,
SUM(reservations.covers) as total_covers  

FROM reservations
JOIN restaurants on restaurants.id = reservations.restaurant_id

WHERE reservations.origin = 'mobile'
and restaurants.relationship_type in ('listing_only', 'difficult', 'ipad')

GROUP BY hour

ORDER BY hour desc

これは次のようなものを出力します:

hour                       total_covers
"2019-02-19 15:00:00+00"    4
"2019-02-19 13:00:00+00"    15
"2019-02-19 12:00:00+00"    4
"2019-02-19 11:00:00+00"    4
"2019-02-19 10:00:00+00"    26
"2019-02-19 09:00:00+00"    5
"2019-02-19 08:00:00+00"    8
"2019-02-19 07:00:00+00"    12
"2019-02-19 03:00:00+00"    2

私はこのようなものを取得したいと思います:

Time_Interval         Total_Covers
24 Hours                  389
48 Hours                  254
72 hours                  459
96 Hours                  239
4

2 に答える 2