常见大厂面试题(SQL)01

知乎问答最大连续回答问题天数大于等于3天的用户及其对应等级

1.描述

现有某乎问答创作者信息表author_tb如下(其中author_id表示创作者编号、author_level表示创作者级别,共1-6六个级别、sex表示创作者性别):

author_id   

author_level

sex

101

6

m

102

1

f

103

1

m

104

3

m

105

4

f

106

2

f

107

2

m

108

5

f

109

6

f

110

5

m

创作者回答情况表answer_tb如下(其中answer_date表示创作日期、author_id指创作者编号、issue_id指回答问题编号、char_len表示回答字数):

answer_date

author_id

issue_id

char_len

2023-11-01

101

E001

150

2023-11-01

101

E002

200

2023-11-01

102

C003

50

2023-11-01

103

P001

35

2023-11-01

104

C003

120

2023-11-01

105

P001

125

2023-11-01

102

P002

105

2023-11-02

101

P001

201

2023-11-02

110

C002

200

2023-11-02

110

C001

225

2023-11-02

110

C002

220

2023-11-03

101

C002

180

2023-11-04

109

E003

130

2023-11-04

109

E001

123

2023-11-05

108

C001

160

2023-11-05

108

C002

120

2023-11-05

110

P001

180

2023-11-05

106

P002

45

2023-11-05

107

E003

56

请你统计最大连续回答问题的天数大于等于3天的用户及其等级(若有多条符合条件的数据,按author_id升序排序),以上例子的输出结果如下:

author_id

author_level

days_cnt

101

6

3

数据导入

drop database if exists db_1;
create database db_1;
use db_1;

drop table if exists author_tb;
CREATE TABLE author_tb
(
    author_id    int(10) NOT NULL,
    author_level int(10) NOT NULL,
    sex          char(10) NOT NULL
);
INSERT INTO author_tb   
VALUES 
    (101, 6, 'm'),
    (102, 1, 'f'),
    (103, 1, 'm'),
    (104, 3, 'm'),
    (105, 4, 'f'),
    (106, 2, 'f'),
    (107, 2, 'm'),
    (108, 5, 'f'),
    (109, 6, 'f'),
    (110, 5, 'm');

drop table if exists answer_tb;
CREATE TABLE answer_tb
(
    answer_date date     NOT NULL,
    author_id   int(10) NOT NULL,
    issue_id    char(10) NOT NULL,
    char_len    int(10) NOT NULL
);

INSERT INTO answer_tb
VALUES 
    ('2021-11-1', 101, 'E001', 150),
    ('2021-11-1', 101, 'E002', 200),
    ('2021-11-1', 102, 'C003', 50),
    ('2021-11-1', 103, 'P001', 35),
    ('2021-11-1', 104, 'C003', 120),
    ('2021-11-1', 105, 'P001', 125),
    ('2021-11-1', 102, 'P002', 105),
    ('2021-11-2', 101, 'P001', 201),
    ('2021-11-2', 110, 'C002', 200),
    ('2021-11-2', 110, 'C001', 225),
    ('2021-11-2', 110, 'C002', 220),
    ('2021-11-3', 101, 'C002', 180),
    ('2021-11-4', 109, 'E003', 130),
    ('2021-11-4', 109, 'E001', 123),
    ('2021-11-5', 108, 'C001', 160),
    ('2021-11-5', 108, 'C002', 120),
    ('2021-11-5', 110, 'P001', 180),
    ('2021-11-5', 106, 'P002', 45),
    ('2021-11-5', 107, 'E003', 56);

select * from author_tb;

select * from answer_tb;

解题思路

实现代码

with t1 as (
    -- 1 去重
    select
        author_id,
        answer_date,
        -- 2 排名
        row_number() over (partition by author_id order by answer_date) as rn,
        -- 3 差值 = 日期 - 排名
        date_sub(answer_date, interval (row_number() over (partition by author_id order by answer_date)) day) as diff
    from answer_tb
    group by answer_date, author_id
)
select
    author_id,
    (select t2.author_level from author_tb t2 where t2.author_id=t1.author_id) author_level,
    count(1) days
from t1
group by author_id, diff
having count(1)>=3
order by author_id asc
;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ARP 攻击神器:ARP Spoof 保姆级教程

一、介绍 arpspoof是一种网络工具,用于进行ARP欺骗攻击。它允许攻击者伪造网络设备的MAC地址,以欺骗其他设备,并截获其通信。arpspoof工具通常用于网络渗透测试和安全评估,以测试网络的安全性和漏洞。 以下是arpspoof工具的一些…

LabVIEW学习记录 - 实时显示时间

LabVIEW操作 - 实时显示时间 在程序框图,选择函数->定时->格式化日期/时间字符串 该函数的使用手册说明: 鼠标选择“格式化日期/时间字符串”->创建->输入控件->输入格式 查看时间代码格式: 编程->定时->获取时间日…

业务复习知识点Oracle查询

业务数据查询-1 单表查询 数据准备 自来水收费系统建表语句.sql 简单条件查询 精确查询 需求 :查询水表编号为 30408 的业主记录 查询语句 : select * from t_owners where watermeter 30408; 查询结果 : 模糊查询 需求 :查询业…

每日汇评:捍卫 2318美元的支撑位对于黄金至关重要

金价仍保持防御性,但周三早盘守住 2300 美元。; 在中东紧张局势缓和之际,美元下跌给金价带来了安慰。 只要 21 日均线守住,金价下跌空间似乎有限,因为 RSI 保持看涨; 周三早盘,金价维持在2300美…

机器学习-随机森林算法预测房租模型

文章目录 机器学习-随机森林算法预测房租模型解决问题数据集探索性数据分析数据预处理构建模型并训练结果分析与评估参数调优结果预测模型保存经验总结参考文章 机器学习-随机森林算法预测房租模型 解决问题 根据待租房源相关信息,通过随机森林机器学习算法构件预…

045、seq2seq

之——序列生成 杂谈 基于RNN实现,通过RNN生成器不断获取输入,更新隐藏状态,将最后生成的隐藏状态传递给解码器,然后自循环迭代直到输出停止。 正文 1.训练 训练时候解码器使用目标句子不断作为输入,就算解码错了输入…

Docker向harbor上传大镜像的413报错

文章目录 一、背景二、问题三、处理1.调整harbor相关大小2.正向代理的nginx参数 一、背景 最近遇到了个需求,某厂商的系统模块以容器模式部署在我们的内网环境中,厂商为我们提供了一个公网仓库,需要我们自己下载相关镜像。因此,获…

华为机考入门python3--(18)牛客18- 识别有效的IP地址和掩码并进行分类统计

分类:字符串 知识点: 字符串是否由数字组成 my_str.isdigit() 字符串填充 不足8位左侧填充0 my_str.zfill(8) 题目来自【牛客】 import sys def classify_ip(ip_mask): ip_class, is_private_ip, mask_class ignore_ip, 0, valid_mask# 解…

值传递和地址传递

文章目录 目录值传递地址传递 目录 值传递 package com.zhang.parameter; //值传递 public class MethodDemo1 {public static void main(String[] args) {int a 10;System.out.println(a);System.out.println("~~~~~~~~~~~~~~~");change(a);//无论你传入的是什么 …

基于AARRR模型的录音笔在电商平台进行推广的建议

基于AARRR模型,即Acquisition(获取用户)、Activation(提高活跃度)、Retention(提高留存率)、Revenue(获取收入)和Refer(自传播),以下是…

深度学习发展中的继承和创新

深度学习是一步一步发展而来的,新的成就也是在原有的基础上,逐步取得突破,有一些东西是一点一点变化,突破发展而来的,也就是每一次小的突破和每一次小的突破累积起来,构成一个明显的进步。我们可以通过观察…

MAC用户福利:一站式电商客服工具下载地址大全揭秘!

列举和比较拼多多商家版,阿里卖家MAC版本,京麦工作台,聊天宝MAC版,千牛MAC版,抖店MAC版各种适用于MAC系统的电商客服工具,提供平台MAC版本的下载地址,帮助用户提高客服效率、改善客户体验,从而提…

滚动条详解:跨平台iOS、Android、小程序滚动条隐藏及自定义样式综合指南

滚动条是用户界面中的图形化组件,用于指示和控制内容区域的可滚动范围。当元素内容超出其视窗边界时,滚动条提供可视化线索,并允许用户通过鼠标滚轮、触屏滑动或直接拖动滑块来浏览未显示部分,实现内容的上下或左右滚动。它在保持…

私域运营的基础是什么?

私域运营是指在自有平台上进行的一系列运营活动,旨在建立和维护与用户的深度互动关系,提升用户忠诚度和品牌影响力。相比于传统的广告投放和推广方式,私域运营更加注重与用户的沟通和互动,通过提供有价值的内容和个性化的服务&…

2024年 团体程序设计天梯赛个人总结

前言: 这是一个悲伤的故事~ 🏆题目传送门 ⭐L1一阶题⭐L1-097 编程解决一切(5分)⭐L1-098 再进去几个人(5分)⭐L1-099 帮助色盲(10分)⭐L1-100 四项全能(10 分&#xff0…

权威解析Spring框架九大核心功能(续篇):专业深度,不容错过

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目:CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

kubernetes中的附件组件Metrics-server与hpa资源实现对pod的自动扩容和缩容

一、概述 Metrics-Server组件目的:获取集群中pod、节点等负载信息; hpa资源目的:通过metrics-server获取的pod负载信息,自动伸缩创建pod; 二、安装部署 Metrics-Server组件 安装目的,就是给k8s集群安装top…

Python从0到100(十六):面向对象编程入门

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

基于SSM的教务管理系统

功能模块 登录界面 管理员端 教师端 学生端 部分源码 //登录表单处理RequestMapping(value "/login", method {RequestMethod.POST})public String login(Userlogin userlogin) throws Exception {//Shiro实现登录UsernamePasswordToken token new UsernamePasswo…

F-47创建预付款请求

F-47创建预付款请求 需要删除 可以使用FB08 冲消即可