首页 > 数据库 >牛客SQL163

牛客SQL163

时间:2022-12-02 08:55:05浏览次数:36  
标签:题目 在线 SQL163 牛客 开窗 排序 人数 我们

 

 

 

思路:

  1. 题目要求我们统计每篇文章的同一时刻最大在线人数,所以我们观察表结构,通过进入时间和离开时间我们知道一个用户什么时候在线,什么时候不在线
  2. 也就是说一个int time代表在线人数+1,一个out time代表在线人数-1,所以我们需要在时间戳后面加一个伪列
  3. 但此时的表结构显然是不符合我们的需求的,所以我们第一步需要拆表,加伪列,然后拼接表,于是我们就得到了下面的结果

 

 

 

里面有一些小细节,比如

题目需求只需要每篇文章和人数,所以为了减少不必要的数据只需要三个字段

然后与之前不同的是,在拼接之前就使用了where语句,理由谓词下推,过滤条件与源数据靠拢

注意union 与 union all的区别,这里需要重复数据,因为可能出现同一时间出现相同的操作

得到数据如下

 

 

 

  1. 于是我们就可以清楚的知道什么时间用户数+1或者-1,也就是说

第二步,我们根据时间排序,通过sum求和开窗就能知道每一时刻的在线人数

代码如下

 

 

 

其中,题目要求

 

 

 

所以根据时间排序是,还要根据增加数排序

结果如下

 

 

 

那么开窗求和之后数据为什么会变成这样呢

因为

 

 

 

 

 

 

也就是说他会根据时间顺序默认从第一行加到当前行

  1. 观察数据很明了,最终我们只需要通过分组,max找到最大的人数即可,别忘了题目要求根据人数降序

结果如下

 

 

 

 

 

本文档来源:yyc

 

 

总结下来这题思路就是拆表,合表,开窗排序求和取最大值

标签:题目,在线,SQL163,牛客,开窗,排序,人数,我们
From: https://www.cnblogs.com/flyer-ovo/p/16943357.html

相关文章

  • python(牛客)试题解析3 - 困难
    导航一、找到已经最大承重的背包内如何放入最大价值的物品的最优解二、查找一个字符串中包含另外一个字符串(可打乱顺序)的次数三、计算正整数数组从头走到最后一个成员......
  • 牛客小白月赛61 E.排队(组合数学)
    题目大意:对于n个数,求其所有可能排列中的逆序数之和解题思路:求每种排列逆序数之和,因为数字的顺序在变化,这对我们去计算总和很不利,所以我们转换思路我们可以先考虑数对(a......
  • 2021牛客OI赛前集训营-提高组(第四场)总结
    概述预估得分:\(100+100+30+50=280\)实际得分:\(30+50+30+45=165\)T1最终测试题目大意\(n\)名选手,第\(i\)名选手的得分有\(0,\;a_{i,0},\;a_{i,......
  • 树形背包 / 树形DP(牛客 - 蓝魔法师)
    一般的树形背包问题,往往与以下模板异曲同工。复杂度为\(O(n^3)\)voiddfs(intu){ sz[u]=1; for(autov:G[u]) { dfs(v);sz[u]+=sz[v]; for(intj=sz[......
  • 牛客小白月赛61 F 尺取法 前缀和
    题目的描述是多维的即有人数限制又有座位限制。但是每次选座位是连续的,这意味着可以利用尺取法贪心的求出以每个左端点为起始最小的合法的右端点。考虑如何求f(x)即x人......
  • python(牛客)试题解析2 - 中等
    导航一、NC192二叉树的后序遍历二、NC117 合并二叉树三、求长度最长的的连续子序列使他们的和等于sum四、按顺序取出固定长度内容并合并两个数组为一个新数组五、输......
  • 牛客小白月赛 61 题解
    前言以下内容转自官方首先,十分抱歉给大家带来了不好的比赛体验,下面是比赛中出的大锅。锅1:B题是出题人在读CSAPP时想到的一道小模拟,但在题目描述时出了问题,应该......
  • 牛客小白月赛61 B柜台结账
    原题链接#include<stdio.h>#include<string.h>#include<stdlib.h>constintN=1e5+10;chara1[N],a2[N];//分别为a1和a2的字符串intlena,lenb;//分别为a1和a2的字......
  • python(牛客)试题解析1 - 简单
    导航:一、NC103反转字符串二、NC141判断是否为回文字符串三、NC151最大公约数四、NC65斐波那契数列五、字符按排序后查看第k个最小的字母六、数组内取出下标相同......
  • 牛客java基础语法在线编程-知识点小结(待完善)
    知识点小结一、输入输出Scanner类Scanner类在java.util包下,导包格式如下:importjava.util.Scanner;使用示例:importjava.util.Scanner;classMain01{publ......