我是Tableau的新手,我需要根据给定的时间范围找到所有行集过滤器,然后对同一分钟的结果进行分组。我可以按照以下方法在Sql中破解此问题
select count(x)
from table t
where datediff(30, min, date)
group by datepart(min, date)
如何在Tableau中修复它?
答案 0 :(得分:0)
我不确定您想要什么,但这会为您提供每分钟的记录数(对于日期在最近30分钟之内的记录):
select datepart(MI, date) , COUNT(*) as NumberOfRecordsInMinute
from table t
where date >= dateADD(MI, -30, getdate())
group by datepart(MI, date)
order by datepart(MI, date)
答案 1 :(得分:0)
由于标准SQL datediff
的功能类似于datediff(datepart,startdate,enddate)
,并以指定的单位返回两个日期之间的差值,因此您的SQL试图在这里做什么并不明显。
如果这是您想要的,那么Tableau函数datediff
的工作大致相同,而datediff('minute',start date,enddate)
将返回两个日期时间之间的分钟数,并且由于结果是离散的,因此已经被分组了
然后您可以计算与每一分钟差异匹配的记录数。