我目前正在使用 Metabase 将一些公司内部指标的实时仪表板放在一起,我想查询的一件事是我们的移动应用程序上的 24 小时滚动窗口进行交易。Metabase 有一个有用的可视化工具,称为“智能数字”,它允许您比较定义时间段内值的变化。像这样。
我无法编写以 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