SQL 刷题/【字节跳动】识别设备类别中的高耗能设备
上一题下一题困难通过率 50%

【字节跳动】识别设备类别中的高耗能设备

聚合函数窗口函数CASE WHEN日期函数用户行为分析面试真题

题目描述

来源:字节跳动 SQL 面试真题

某智能家居服务商需要监控用户家中各类设备的电力消耗情况。系统需要分析每台设备的月度用电量,找出那些比同类设备平均用电量更高的高耗能设备,并生成提醒简报。

数据表

smart_devices 智能设备信息表

字段类型说明
device_idVARCHAR设备唯一标识符,主键
device_nameVARCHAR设备名称,例如 Living Room AC
categoryVARCHAR设备类别,例如 HVAC、Lighting、Kitchen
locationVARCHAR设备所在位置,例如 Living Room
install_dateDATE设备安装日期

energy_logs 能耗日志表

字段类型说明
log_idINT日志编号,主键
device_idVARCHAR设备 ID,逻辑关联 smart_devices.device_id
usage_kwhDECIMAL该时段消耗的电量,单位为千瓦时
log_timestampDATETIME日志记录时间
statusVARCHAR设备状态:active、standby 或 error

题目要求

找出 2025 年 1 月期间总用电量严格大于其所属设备类别该月平均总用电量的设备。

设备类别的月平均总用电量需要基于该类别下的所有设备计算,1 月没有能耗日志的设备按 0 千瓦时参与平均值计算。

输出字段:

  • device_name:设备名称。
  • location_code:将 location 中的所有空格替换为下划线,并转换为全大写,例如 Living Room 转为 LIVING_ROOM
  • total_usage:设备 2025 年 1 月总用电量,四舍五入保留 2 位小数。
  • efficiency_level:当 total_usage >= 50.00 时为 High Load,否则为 Normal

结果按 total_usage 降序排列;若用电量相同,则按 device_id 升序排列。所有能耗日志状态均属于有效日志,题目不要求按 status 过滤。

数据样例

当前运行环境
device_idPKVARCHAR(30)device_nameVARCHAR(100)categoryVARCHAR(30)locationVARCHAR(100)install_dateDATE
D-001Living Room ACHVACLiving Room2023-06-01
D-002Master Bedroom ACHVACMaster Bedroom2023-07-15
D-003Office ACHVACHome Office2024-01-10
D-004Kitchen LightLightingKitchen2024-03-20
D-005Hallway LightLightingMain Hallway2024-04-05
D-006Water HeaterKitchenUtility Room2022-11-01
D-007DishwasherKitchenKitchen2023-02-18
输入数据显示 7 / 7
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里