LeetCode MySQL 1661. 每台机器的进程平均运行时间
文章目錄
- 1. 題目
- 2. 解題
1. 題目
表: Activity
+----------------+---------+ | Column Name | Type | +----------------+---------+ | machine_id | int | | process_id | int | | activity_type | enum | | timestamp | float | +----------------+---------+該表展示了一家工廠網(wǎng)站的用戶活動(dòng).
(machine_id, process_id, activity_type) 是當(dāng)前表的主鍵.
machine_id 是一臺(tái)機(jī)器的ID號(hào).
process_id 是運(yùn)行在各機(jī)器上的進(jìn)程ID號(hào).
activity_type 是枚舉類型 (‘start’, ‘end’).
timestamp 是浮點(diǎn)類型,代表當(dāng)前時(shí)間(以秒為單位).
‘start’ 代表該進(jìn)程在這臺(tái)機(jī)器上的開(kāi)始運(yùn)行時(shí)間戳 ,
‘end’ 代表該進(jìn)程在這臺(tái)機(jī)器上的終止運(yùn)行時(shí)間戳.
同一臺(tái)機(jī)器,同一個(gè)進(jìn)程都有一對(duì)開(kāi)始時(shí)間戳和結(jié)束時(shí)間戳,而且開(kāi)始時(shí)間戳永遠(yuǎn)在結(jié)束時(shí)間戳前面.
現(xiàn)在有一個(gè)工廠網(wǎng)站由幾臺(tái)機(jī)器運(yùn)行,每臺(tái)機(jī)器上運(yùn)行著相同數(shù)量的進(jìn)程.
請(qǐng)寫(xiě)出一條SQL計(jì)算每臺(tái)機(jī)器各自完成一個(gè)進(jìn)程任務(wù)的平均耗時(shí).
完成一個(gè)進(jìn)程任務(wù)的時(shí)間指進(jìn)程的’end’ 時(shí)間戳 減去 ‘start’ 時(shí)間戳.
平均耗時(shí)通過(guò)計(jì)算每臺(tái)機(jī)器上所有進(jìn)程任務(wù)的總耗費(fèi)時(shí)間除以機(jī)器上的總進(jìn)程數(shù)量獲得.
結(jié)果表必須包含machine_id(機(jī)器ID) 和對(duì)應(yīng)的 average time(平均耗時(shí)) 別名 processing_time, 且四舍五入保留3位小數(shù).
具體參考例子如下:
Activity table:
+------------+------------+---------------+-----------+ | machine_id | process_id | activity_type | timestamp | +------------+------------+---------------+-----------+ | 0 | 0 | start | 0.712 | | 0 | 0 | end | 1.520 | | 0 | 1 | start | 3.140 | | 0 | 1 | end | 4.120 | | 1 | 0 | start | 0.550 | | 1 | 0 | end | 1.550 | | 1 | 1 | start | 0.430 | | 1 | 1 | end | 1.420 | | 2 | 0 | start | 4.100 | | 2 | 0 | end | 4.512 | | 2 | 1 | start | 2.500 | | 2 | 1 | end | 5.000 | +------------+------------+---------------+-----------+Result table:
+------------+-----------------+ | machine_id | processing_time | +------------+-----------------+ | 0 | 0.894 | | 1 | 0.995 | | 2 | 1.456 | +------------+-----------------+一共有3臺(tái)機(jī)器,每臺(tái)機(jī)器運(yùn)行著兩個(gè)進(jìn)程.
機(jī)器 0 的平均耗時(shí): ((1.520 - 0.712) + (4.120 - 3.140)) / 2 = 0.894
機(jī)器 1 的平均耗時(shí): ((1.550 - 0.550) + (1.420 - 0.430)) / 2 = 0.995
機(jī)器 2 的平均耗時(shí): ((4.512 - 4.100) + (5.000 - 2.500)) / 2 = 1.456
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/average-time-of-process-per-machine
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
- 先求總時(shí)間,然后除以進(jìn)程數(shù)量
234 ms 0 B MySQL
我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode MySQL 1661. 每台机器的进程平均运行时间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Chapter5_Speaker_Ver
- 下一篇: LeetCode MySQL 1890.