Sql 在给定的日期范围内每天对设备进行计数

Sql 在给定的日期范围内每天对设备进行计数,sql,postgresql,aggregate,aggregate-filter,Sql,Postgresql,Aggregate,Aggregate Filter,我有一个表,其中有3种状态的设备,通过,失败和警告 装置 地位 日期 设备1 通过 12/1/2020 设备2 失败 12/1/2020 设备3 警告 12/1/2020 设备1 失败 12/2/2020 设备2 警告 12/2/2020 设备3 通过 12/2/2020 您可以使用聚合筛选器子句在单个查询中执行此操作 在所选日期范围内,每天为每个所选设备获取三次计数失败、通过和警告。无任何外观的天数的NULL计数。0如果设备出现,但不具有此状态: 选择日期、设备名称 、失败计数、警告计数、通过

我有一个表,其中有3种状态的设备,通过,失败和警告

装置 地位 日期 设备1 通过 12/1/2020 设备2 失败 12/1/2020 设备3 警告 12/1/2020 设备1 失败 12/2/2020 设备2 警告 12/2/2020 设备3 通过 12/2/2020 您可以使用聚合筛选器子句在单个查询中执行此操作

在所选日期范围内,每天为每个所选设备获取三次计数失败、通过和警告。无任何外观的天数的NULL计数。0如果设备出现,但不具有此状态:

选择日期、设备名称 、失败计数、警告计数、通过计数 从状态表d中选择不同的设备名称-所有设备① 交叉连接 选择generate_seriestimestamp“2020-12-01” ,时间戳“2020-12-31” ,间隔“1天”::日期 tdate-所有日期 左连接 选择日期、设备名称 ,count*过滤器,其中总体\u状态='Fail'作为Fail\u计数 ,count*过滤器,其中总体\u状态='Warning'作为警告\u计数 ,count*过滤器,其中总体\u状态='Pass'作为Pass\u计数 从状态表 其中日期>='2020-12-01'-与上述日期范围相同 和date您可以使用aggregate FILTER子句在单个查询中执行此操作

在所选日期范围内,每天为每个所选设备获取三次计数失败、通过和警告。无任何外观的天数的NULL计数。0如果设备出现,但不具有此状态:

选择日期、设备名称 、失败计数、警告计数、通过计数 从状态表d中选择不同的设备名称-所有设备① 交叉连接 选择generate_seriestimestamp“2020-12-01” ,时间戳“2020-12-31” ,间隔“1天”::日期 tdate-所有日期 左连接 选择日期、设备名称 ,count*过滤器,其中总体\u状态='Fail'作为Fail\u计数 ,count*过滤器,其中总体\u状态='Warning'作为警告\u计数 ,count*过滤器,其中总体\u状态='Pass'作为Pass\u计数 从状态表 其中日期>='2020-12-01'-与上述日期范围相同
日期是指每个设备的行数,对吗?请始终声明您的Postgres版本。你所说的日常状态是指。。表中每个设备每天一行?或者确切地说是什么?设备数,你指的是每个设备的行数,对吗?请始终声明您的Postgres版本。你所说的日常状态是指。。表中每个设备每天一行?或者到底是什么?看起来很棒。我怎样才能知道日期呢。基本上,我想得到在开始日期和结束日期之间,每天的失败、通过和警告的设备计数。@Ash:每天,好的。每天到底有哪些设备?我更新了以提供一种可能的解释。这是问题陈述-绘制一个堆叠条形图,Y轴将有设备计数,X轴将有日期。用户可以选择一个日期范围,Y轴将以堆叠条的形式为该范围内的每个日期显示设备、失败、通过和警告。@Ash:好的,每天一个数据点。但对于哪些设备?表中的所有设备/每天?还是时间范围内的所有设备?或者只针对那些碰巧有当天数据的设备?或者设备计数应该是指不同设备的数量?每天的设备?我在问题下的评论是的。表中的所有设备/每天-如果没有数据,则应显示空栏。但应该在x轴上显示日期,并没有当天的数据。这看起来很棒。我怎样才能知道日期呢。基本上,我想得到在开始日期和结束日期之间,每天的失败、通过和警告的设备计数。@Ash:每天,好的。每天到底有哪些设备?我更新了以提供一种可能的解释。这是问题陈述-绘制一个堆叠条形图,Y轴将有设备计数,X轴将有日期。用户可以选择一个日期范围,Y轴将以堆叠条的形式为该范围内的每个日期显示设备、失败、通过和警告。@Ash:好的,每天一个数据点。但对于哪些设备?表中的所有设备/每天?还是时间范围内的所有设备?或者只针对那些碰巧有当天数据的设备?或者设备计数应该是指不同设备的数量?每天的设备?我在问题下的评论是的。表中的所有设备/每天-如果没有数据,则应显示空栏。但应该在x轴上显示日期,即没有当天的数据。