LeetCode MySQL 1661. 每台机器的进程平均运行时间

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

表: Activity

+----------------+---------+
| Column Name    | Type    |
+----------------+---------+
| machine_id     | int     |
| process_id     | int     |
| activity_type  | enum    |
| timestamp      | float   |
+----------------+---------+

该表展示了一家工厂网站的用户活动.
(machine_id, process_id, activity_type) 是当前表的主键.
machine_id 是一台机器的ID号.
process_id 是运行在各机器上的进程ID号.
activity_type 是枚举类型 (‘start’, ‘end’).
timestamp 是浮点类型,代表当前时间(以秒为单位).

‘start’ 代表该进程在这台机器上的开始运行时间戳 ,
‘end’ 代表该进程在这台机器上的终止运行时间戳.
同一台机器,同一个进程都有一对开始时间戳和结束时间戳,而且开始时间戳永远在结束时间戳前面.

现在有一个工厂网站由几台机器运行,每台机器上运行着相同数量的进程.
请写出一条SQL计算每台机器各自完成一个进程任务的平均耗时.

完成一个进程任务的时间指进程的’end’ 时间戳 减去 ‘start’ 时间戳.
平均耗时通过计算每台机器上所有进程任务的总耗费时间除以机器上的总进程数量获得.

结果表必须包含machine_id(机器ID) 和对应的 average time(平均耗时) 别名 processing_time, 且四舍五入保留3位小数.

具体参考例子如下:

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台机器,每台机器运行着两个进程.
机器 0 的平均耗时: ((1.520 - 0.712) + (4.120 - 3.140)) / 2 = 0.894
机器 1 的平均耗时: ((1.550 - 0.550) + (1.420 - 0.430)) / 2 = 0.995
机器 2 的平均耗时: ((4.512 - 4.100) + (5.000 - 2.500)) / 2 = 1.456

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/average-time-of-process-per-machine
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先求总时间,然后除以进程数量
# Write your MySQL query statement below
select t1.machine_id, round(tot/num,3) processing_time
from
(select machine_id, sum(if(activity_type='start', -timestamp, timestamp)) totfrom Activity agroup by machine_id
) t1 left join
(select b.machine_id, count(distinct b.process_id) num from Activity b group by machine_id
) t2
on(t1.machine_id=t2.machine_id)

234 ms 0 B MySQL


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

场地测量的方法和程序_场地测量方案

第1页共21页天河学院A区场地土方平整测量施工方案一、工程概况广东技术师范天河学院校内实训基地,学生会办公室前面场地,土方整平面积约为100平方米,地形复杂。二、人员分组本小组为第3小组一共有6人,陈德杰、何浚鸿、徐中仪、冼伟…

LeetCode MySQL 1741. 查找每个员工花费的总时间

文章目录1. 题目2. 解题1. 题目 表: Employees ------------------- | Column Name | Type | ------------------- | emp_id | int | | event_day | date | | in_time | int | | out_time | int | -------------------(emp_id, event_day, in_time) 是这个表…

过滤器--起步阶段

过滤器 1)使用AngularJS过滤器可以实现对字符串的大小写转换、货币格式的转换、数组的过滤等等。 用法&#xff1a;管道字符(|)过滤器名。 1.过滤器uppercase、lowercase对字符串转换大、小写&#xff0c;如下所示&#xff1a; <div ng-app"">请输入: <inpu…

linux ls-l getswd,liunx

title: liunxdate: 2020-03-01 21:42:48tags:- liunx- systemcategory:systemliunx 常用命令$ pwd //输出当前文件绝对路劲$ cd //进入某个文件夹,改变目录$ ls //查看当前目录下的文件或者文件夹名$ ls -l //查看当前目录下所有的文件夹详情$ ls -a //查看当前目录下的所有文件…

lisp 中望cad 选项卡_这些高效插件,学CAD的基本用过两种以上

如果你意识到需要一些辅助工具来提高设计效率&#xff0c;那么恭喜你&#xff0c;摆脱了枯燥难熬的初学者时期&#xff0c;进入到一种不断探索&#xff0c;又能发现惊喜的阶段。这并不是空穴来风&#xff0c;当你把一些基础知识都熟练掌握之后&#xff0c;就会想尽办法寻找工具…

linux信号量通讯失败,Linux C++ 通过信号量进行跨进程通讯

最近帮着同事搞了一下嵌入式的gtk界面, 中间有用到系统signal来进行进程通讯, 做个简单的记录在使用linux系统信号量之前需要先了解一下信号量基础知识, 这里给出一个参考博文, 讲的很仔细 : https://www.cnblogs.com/taobataoma/archive/2007/08/30/875743.html下面是我摘录的…

LeetCode MySQL 1777. 每家商店的产品价格(行列转换)

文章目录1. 题目2. 解题1. 题目 表&#xff1a;Products ---------------------- | Column Name | Type | ---------------------- | product_id | int | | store | enum | | price | int | ----------------------(product_id,store) 是这个表的…

android 判断主线程_面试官:Android 子线程更新UI了解吗?

前言今天一个朋友去面试&#xff0c;被问到为什么Loop 死循环而不阻塞UI线程&#xff1f;为什么子线程不能更新UI&#xff1f;是不是子线程一定不可以更新UI&#xff1f;SurfaceView是为什么可以直接子线程绘制呢&#xff1f;用SurfaceView 做一个小游戏&#xff0c;别踩百块&a…

记事本linux命令换行符,Windows 10版记事本应用终于支持Linux/Mac换行符 排版不再辣眼睛...

记事本(Notepad)是微软 Windows 操作系统中相当经典的一款工具&#xff0c;其在最新的 Windows 10 操作系统中也得到了保留&#xff0c;命运比被 Photos 和 Paint 3D 取代的画图(MsPaint)程序要好得多。不过最近&#xff0c;Windows10 版记事本应用迎来了一项技能更新&#xff…

LeetCode 1885. Count Pairs in Two Arrays(二分查找)

文章目录1. 题目2. 解题1. 题目 Given two integer arrays nums1 and nums2 of length n, count the pairs of indices (i, j) such that i < j and nums1[i] nums1[j] > nums2[i] nums2[j]. Return the number of pairs satisfying the condition. Example 1: Inpu…

hal库开启中断关中断_STM32对HAL库的定时器中断

从串口中断&#xff0c;到外部中断再到现在的定时器中断&#xff0c;越来越感觉HAL库应用比较好用&#xff0c;虽然一开始理解上面有点怪&#xff0c;但是网上查询一下就能够学会。定时器中断分为两个重点&#xff0c;1、在应用CUBEMX时配置定时器的分频数以及时钟树设置 2、生…

How to Avoid Producing Legacy Code at the Speed of Typing

英语不好翻译很烂。英语好的去看原文。 About the Author I am a software architect/developer/programmer.I have a rather pragmatic approach towards programming, but I have realized that it takes a lot of discipline to be agile. I try to practice good craftsman…

c语言程序做成可执行文件,windows环境下C程序生成可执行文件

windows环境下&#xff0c;编写C程序&#xff0c;生成.exe&#xff0c;用于操作某个文件。包含三部分&#xff1a;搭建环境、程序实现、程序分析。1、搭建程序编写和编译环境在windows下安装Git Bash(下载页面)。安装完成后&#xff0c;可以在windows的任意文件夹下&#xff0c…

LeetCode MySQL 1890. 2020年最后一次登录(year)

文章目录1. 题目2. 解题1. 题目 表: Logins -------------------------- | 列名 | 类型 | -------------------------- | user_id | int | | time_stamp | datetime | --------------------------(user_id, time_stamp) 是这个表的主键。 每一…

大锅菜机器人_炒菜机或者炒菜机器人有好用的吗 - 玩主论坛

好像公司还在&#xff0c;出新型号了。智能烹饪机炒菜视频&#xff1a;http://videotudoucom/v/XMTk3MDkwNDU5Nghtml智能烹饪机将主(菜、肉、鱼……)副料一次性投入&#xff0c;选定菜系&#xff0c;轻触按钮&#xff0c;一般家常菜肴仅三分钟即可出锅食用。本机具有自动翻炒功…

高效开发--crm开发有悟

今天我计划许久的回访单功能模块&#xff0c;还是没有实现&#xff0c;没有搞定。心中很是苦闷啊&#xff01;&#xff01;&#xff01;原因&#xff1a;自己想去吧。以后怎么做&#xff1a;什么也是纸老虎&#xff0c;程序研发太简单&#xff0c;只要弄清了需求&#xff0c;其…

LeetCode MySQL 1873. 计算特殊奖金(case when then else end)

文章目录1. 题目2. 解题1. 题目 表: Employees ---------------------- | 列名 | 类型 | ---------------------- | employee_id | int | | name | varchar | | salary | int | ----------------------employee_id 是这个表的主键。 此表的每…

href 带参数 打开exe_js调用winform程序(带参数)

我们会发现,我们点击迅雷下载的时候 网页可以调用应用程序,而且连接会传入迅雷,这个是怎么做到的呢?原理: 先注册表中添加软件的具体信息,然后通过 href 可以直接调用1.写入注册表信息,注册,如果不需要参数 只要第一个HKEY_CLASSES_ROOT\test 段落Windows Registry Editor Ve…

c语言variant是什么变量,介绍一些常用数据类型的使用。先定义一些常见类型变量借以.doc...

介绍一些常用数据类型的使用。先定义一些常见类型变量借以说明int i 100;long l 2001;float f300.2;double d12345.119;char username[]"张三";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符串短整型(int)itoa(i,tem…

What code you will get when you create a wcf library

创建wcf服务库的时候&#xff0c;系统自动生成的代码 // 注意: 使用“重构”菜单上的“重命名”命令&#xff0c;可以同时更改代码和配置文件中的接口名“IService1”。[ServiceContract]public interface IService1{[OperationContract]string GetData(int value);[OperationC…