zoukankan      html  css  js  c++  java
  • sqlserver 按日统计采集数据数量,并根据上下限值统计越界数量

    数据库表如上

    想把每日统计用chart展现出来,按日统计采集数据数量,并根据上下限值统计越界数量 ,一个时间柱 日期  两个y 值 总数和 报警数

    总数查出来很简单

    SELECT CONVERT(varchar(100), t.DataCreateOn, 111) as day, count(*) as count from AutoNetwork_TargetData t GROUP BY CONVERT(varchar(100), t.DataCreateOn, 111)

     然后如何把报警数也添加进去呢, 是不是另起一个命令查出来合并呢

    SELECT CONVERT(varchar(100), DataCreateOn, 111) as day, count(*) as count 
    from AutoNetwork_TargetData where DataValue >60 or DataValue<-15 GROUP BY CONVERT(varchar(100), DataCreateOn, 111)

     上边查出来报警值 where 先过滤过滤掉了不符合条件的后进行 count

    把where去掉 加having

    SELECT CONVERT(varchar(100), DataCreateOn, 111) as day, count(*) as count 
    from AutoNetwork_TargetData GROUP BY CONVERT(varchar(100), DataCreateOn, 111),DataValue
    Having DataValue >60 or DataValue<-15

     后边这个因为group by  后边 合并考虑两个字段,于是 day 出现了重复, 还是不能满足要求

    其实这里如果能巧用sum 两个值都能得到,在select 后边的结果里边进行筛选,而不是在 where 或者having 后边 进行过滤

    SELECT CONVERT(varchar(100), DataCreateOn, 111) as day, count(*) as count ,sum(case when DataValue >60 or DataValue<-15 then 1 else 0 end)as alarmcount
    from AutoNetwork_TargetData  GROUP BY CONVERT(varchar(100), DataCreateOn, 111)

  • 相关阅读:
    ZOJ 3735 Cake(区间DP,最优三角剖分)
    POJ 1185 炮兵阵地 (状态压缩DP)
    POJ 3415 Common Substrings (后缀数组,长度不小于k的公共子串的个数)
    NSNumberFormatter 千分符
    遭遇String.getBytes()
    HDFS数据的Checksum
    hadoop mapreduce作业流程概论
    HDFS 安全模式
    hadoop的dfs.replication
    hadoop升级
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/13371669.html
Copyright © 2011-2022 走看看