news 2026/5/11 6:26:41

力扣1435-制作会话柱状图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣1435-制作会话柱状图

表:Sessions

+---------------------+---------+ | Column Name | Type | +---------------------+---------+ | session_id | int | | duration | int | +---------------------+---------+ session_id 是该表主键 duration 是用户访问应用的时间, 以秒为单位

你想知道用户在你的 app 上的访问时长情况。因此你决定统计访问时长区间分别为"[0-5>""[5-10>""[10-15>""15 minutes or more"的会话数量,并以此绘制柱状图。

写一个解决方案来报告(bin, total)

返回结果无顺序要求

结果格式如下所示。

示例 1:

输入:Sessions 表: +-------------+---------------+ | session_id | duration | +-------------+---------------+ | 1 | 30 | | 2 | 199 | | 3 | 299 | | 4 | 580 | | 5 | 1000 | +-------------+---------------+输出:+--------------+--------------+ | bin | total | +--------------+--------------+ | [0-5> | 3 | | [5-10> | 1 | | [10-15> | 0 | | 15 or more | 1 | +--------------+--------------+解释:对于 session_id 1,2 和 3 ,它们的访问时间大于等于 0 分钟且小于 5 分钟。 对于 session_id 4,它的访问时间大于等于 5 分钟且小于 10 分钟。 没有会话的访问时间大于等于 10 分钟且小于 15 分钟。 对于 session_id 5, 它的访问时间大于等于 15 分钟。

解法思路:

1. 单位换算

首先,题目给出的 duration 是秒,但区间是分钟。为了计算方便且避免除法带来的精度问题,我们先把分钟换算成秒:

  • 0-5 分钟:[0, 300) 秒

  • 5-10 分钟:[300, 600) 秒

  • 10-15 分钟:[600, 900) 秒

  • 15 分钟以上:>= 900 秒

2. 核心难点:零值保留

题目的潜台词是:即使某个区间没有数据,也必须显示该区间,且数量为 0。
如果使用常规的 GROUP BY + CASE WHEN,一旦某个区间没数据,那个区间直接就不会出现在结果里(行丢失),导致答案错误。

3. 策略选择:分而治之 (Divide and Conquer)

既然只有 4 个固定的类别,我们可以把这个问题拆解成 4 个独立的小问题:

  • Q1: 统计 [0, 300) 的数量(如果没有就是 0)

  • Q2: 统计 [300, 600) 的数量

  • ...
    最后用胶水 (UNION ALL) 把它们粘在一起。

代码:

SELECT '[0-5>' AS bin, COUNT(*) AS total sql FROM Sessions WHERE duration >= 0 AND duration < 300 UNION ALL SELECT '[5-10>' AS bin, COUNT(*) AS total FROM Sessions WHERE duration >= 300 AND duration < 600 UNION ALL SELECT '[10-15>' AS bin, COUNT(*) AS total FROM Sessions WHERE duration >= 600 AND duration < 900 UNION ALL SELECT '15 or more' AS bin, COUNT(*) AS total FROM Sessions WHERE duration >= 900;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 4:19:06

Bound Service Account Token Improvements

Bound Service Account Token Improvements 详细介绍Bound Service Account Token&#xff08;绑定服务账户令牌&#xff09;是 Kubernetes 针对传统服务账户令牌安全缺陷推出的增强机制&#xff0c;通过短期有效、对象绑定、受众限制和自动轮换等特性&#xff0c;显著提升了容…

作者头像 李华
网站建设 2026/5/4 5:40:44

人工智能(AI)形象介绍

AI&#xff1a;数字时代的“炼金术”——从概念到日常的神奇旅程一、AI究竟是什么&#xff1f;想象一下&#xff0c;你正在教一个外星来客认识猫——你不能直接告诉它“猫有四条腿、尖耳朵和长尾巴”&#xff0c;因为有些猫可能缺条腿&#xff0c;有些品种耳朵是圆的。你需要给…

作者头像 李华
网站建设 2026/5/10 11:50:47

基于springboot的智能家居系统(11675)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/4/29 17:42:57

大数据背景下Hive的数据建模方法

大数据背景下Hive的数据建模方法&#xff1a;像整理超市货架一样管理海量数据关键词&#xff1a;Hive数据建模、星型模型、雪花模型、数据分层、大数据仓库、维度建模、事实表 摘要&#xff1a;在大数据时代&#xff0c;企业面临“数据爆炸”的挑战——海量数据杂乱无章&#x…

作者头像 李华
网站建设 2026/4/18 8:13:13

学霸同款2026 TOP9 AI论文网站:专科生毕业论文神器测评

学霸同款2026 TOP9 AI论文网站&#xff1a;专科生毕业论文神器测评 2026年AI论文工具测评&#xff1a;为何值得一看&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的专科生开始依赖AI工具辅助完成毕业论文写作。然而&#xff0c;面对市场上五花八门的AI论文网站…

作者头像 李华