簡體   English   中英

mysql如何結合兩個select語句

[英]mysql how to combine two select statement

我有一個數據庫,其中記錄了日期時間和測量值。

我一直在編寫兩個單獨的查詢,一個用於返回上個月的一天中特定時間之間所有每日記錄的總數,而一個查詢卻僅在測量值低於閾值時才計數。

然后,我手動將閾值計數除以每天的總計數,這樣我就能獲得%的正常運行時間或SLA。

所以我有兩個問題:
1)我可以將這兩個查詢合並為一個查詢。 我找到了答案#1,見下文
2)我可以繼續進行查詢中的數學運算,所以返回的只是每天的清單,上面的計數,下面的計數以及閾值之上或之下的百分比...

示例數據和查詢在下面列出。
表A
主機名,date_time,值

示例查詢返回上個月的日期,不包括周末。

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);

所以現在我只想知道如何添加第四列,以給出正常運行時間/停機時間百分比。

你嘗試過這個嗎?

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM