mysql如何结合两个select语句

时间:2013-08-31 01:33:42

标签: mysql select

我有一个包含日期时间和测量值记录的数据库。

我一直在编写两个单独的查询,一个用于返回上个月某些时段之间所有日常记录的总计数,以及相同的查询,但仅在测量值低于阈值时计数。 br />
然后我手动将每天的总数计算得分,我可以获得%正常运行时间或SLA。

所以我有两个问题:
1)我可以将这两个查询合并为一个查询。 我找到#1的答案,见下文
2)我可以继续在查询中进行数学运算,所以我得到的只是每天的列表,上面的计数,下面的计数,以及高于或低于阈值的%......

下面列出了示例数据和查询 表A
hostname,date_time,value

示例查询返回上个月的天数,不包括周末天数。

SELECT
  count(*),
  DATE(date_time),
  SUM(
    CASE WHEN rssi_val < 100
      THEN 1
      ELSE 0
    END
  )
FROM TableA
WHERE hostname = 'hostA'
  AND DATE(date_time) BETWEEN '2013-07-01' AND '2013-07-31'
  AND TIME(date_time) BETWEEN '06:00:00' AND '18:00:00'
  AND DAYOFWEEK(date_time) NOT IN (1, 7)
GROUP BY DATE(date_time);

所以现在我只想知道如何添加第4列,以提供正常运行时间/停机时间百分比。

1 个答案:

答案 0 :(得分:0)

你试过这个吗?

select count(*), 
       DATE(date_time), 
       SUM(CASE WHEN rssi_val<100 THEN 1 ELSE 0 END), 
       SUM(CASE WHEN rssi_val<100 THEN 1 ELSE 0 END)/count(*) as percentage
from TableA 
where hostname='hostA' 
and DATE(date_time) between '2013-07-01' and '2013-07-31' 
and TIME(date_time) between '06:00:00' and '18:00:00' 
and DAYOFWEEK(date_time) NOT IN (1,7) 
group by DATE(date_time);