news 2026/6/12 5:35:59

力扣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/6/10 19:37:01

数字员工如何通过AI销冠系统与AI提效软件系统推动企业智能化升级

数字员工在企业中扮演着愈发重要的角色&#xff0c;尤其是在优化业务流程和降低成本方面。通过引入AI销冠系统&#xff0c;数字员工不仅能够提升工作效率&#xff0c;还能有效减少企业在人工服务上的投入。例如&#xff0c;数字员工借助该系统可以实现全天候客户响应&#xff0…

作者头像 李华
网站建设 2026/5/29 22:26:44

Node.js用AsyncResource追踪异步操作

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Node.js异步追踪的革命&#xff1a;深度解析AsyncResource的实战应用目录Node.js异步追踪的革命&#xff1a;深度解析AsyncResou…

作者头像 李华
网站建设 2026/6/10 23:31:01

[特殊字符] Web-Check:一站式开源网站侦查工具

Web-Check&#xff1a;强大的网站分析工具 Web-Check 是一款全功能的开源情报工具&#xff0c;旨在分析任何网站的内部工作。它可以帮助用户揭示潜在的攻击面&#xff0c;分析服务器架构&#xff0c;查看安全配置&#xff0c;并了解网站使用的技术。Web-Check 提供了全面的、按…

作者头像 李华
网站建设 2026/6/9 22:24:44

Unity 的AI Navigation 系统详细总结

Unity 的AI Navigation 系统&#xff08;2022.2 及以上版本通过 AI Navigation 包实现&#xff09;可让角色在游戏世界智能导航&#xff0c;核心基于自动生成的导航网格&#xff08;NavMesh&#xff09; &#xff0c;支持动态障碍物实时调整导航、OffMesh Link实现跳跃 / 开门等…

作者头像 李华
网站建设 2026/6/10 1:20:10

Unity3D AI Navigation 完全指南:从基础到实战,让角色智能导航

在 Unity 开发中&#xff0c;让游戏角色自主避开障碍、找到最优路径&#xff0c;是提升玩法体验的关键。Unity 的 AI Navigation 系统&#xff08;2022.2 版本已整合为 AI Navigation 包&#xff09;通过导航网格&#xff08;NavMesh&#xff09;、智能 Agent 和动态障碍物机制…

作者头像 李华