[英]calculated field from two fields in separate tables based on a date
使用PostgreSQL v9.6
通過將當天的總入侵時間除以該天按計算機分組的當天的可用正常運行時間,來嘗試平均實際入侵時間。
查詢應類似於:
SELECT availability.adate, sum(intrusionEvents.duration)/availability.uptime, intrusionEvents.host
FROM availability LEFT JOIN intrusionEvents ON (availability.adate = intrusionEvents.itime::date)
WHERE availability.adate >= '20171001' AND availability.adate < '20171101'
GROUP BY availability.adate, intrusionEvents.host
ORDER BY availability.adate, intrusionEvents.host
(其中正常運行時間和intrusionDuration以秒為單位...)
在這種變化中,我遇到了兩個問題:
任何有關如何匯總字段中各個持續時間,然后將其除以具有匹配日期的不同表中的值的任何建議(和示例),將不勝感激!
所以我通過以下方式在組中添加了available.uptime :
select availability.adate, sum(intrusionEvents.duration)/availability.uptime, intrusionEvents.host
FROM availability left join intrusionEvents on (availability.adate = intrusionEvents.itime::date)
WHERE availability.adate >= '20171001' and availability.adate < '20171101'
GROUP by availability.adate, intrusionEvents.host,
availability.uptime
得到了以下結果集:
這就是你想要的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.