
数据分析SQL
文章平均质量分 61
Kay大
专注于机器学习,SQL,数据分析思维方向。少年太弱,请专心练剑!
展开
-
【Kay】MySQL日期函数总结
1、获得当前日期+时间:NOW()SELECT NOW()2、获得当前日期:CURDATE()SELECT CURDATE()3、查一下日期列SELECT set_time FROM sys.sys_config;4、日期格式转化:DATE_FORMAT(time, '%Y-%m-%d')SELECT DATE_FORMAT(set_time, '%Y-%m-%d') FROM sys.sys_config;5、日期的加减:DATE_AD原创 2022-05-16 14:15:51 · 369 阅读 · 0 评论 -
【Kay】留存率相关题目
一、什么是留存以12月1日的新增用户为例,如果12月2日也登录了,就算做次日留存;如果12月3日又登录了,就算做三日留存;12月6日再次登录,就算作7日留存二、SQL实现计算留存率只需要2个字段:用户ID (user_id) 和 登录日期 (login_time)t_user_login:表名 user_id: 用户id,也可用设备ID等 login_time:登录日期时间,例如:2020-05-25 16:03:05...原创 2022-04-15 20:03:30 · 452 阅读 · 0 评论 -
【Kay】SQL行转列、列转行
行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 的运算符PIVOT来实现计算学生平均成绩的代码:SELECT id, AVG(score)FROM studentGROUP BY id;1)长表:2)宽表:考察的问题就是通过SQL语句实现这两种形态转换,长表转宽表即行转列,宽表转长表即列转行01 行转列:sum+if行转列,经典的解决方案有3个①条件聚合,即 sum+if 组合。SQL实现行转列的写法如下:..原创 2022-04-10 22:33:19 · 374 阅读 · 0 评论 -
【真】遇到的SQL题
【字节】3月:order表如下,找出连续登录7天的用户SELECT id, COUNT(*)FROM(SELECT *, date0 – rk FROM( SELECT *, ROW_NUMBER() OVER(PARTITION BY id, ORDER BY date0) AS rkFROM(SELECT id, DISTINCT DATE(date) AS date0 FROM order)a)b)cGROUP BY idHAVING COUNT(*) >原创 2022-04-02 22:18:12 · 116 阅读 · 0 评论 -
【Kay】明日头条新闻SQL题
1.2021年11月每天的人均浏览文章时长统计2021年11月每天的人均浏览文章时长(秒数),结果保留1位小数SELECT DATE_FORMAT(in_time,"%Y-%m-%d") AS dt,ROUND(SUM(TIMESTAMPDIFF(SECOND,in_time,out_time))/COUNT(DISTINCT uid),1) AS avg_viiew_len_secFROM tb_user_logWHERE MONTH(in_time) = 11 AND artical_.原创 2022-03-19 21:06:06 · 274 阅读 · 0 评论 -
【Kay】某音SQL题目
1.各个视频平均完播率计算有播放记录的每个视频的完播率(结果保留三位小数),并按完播率降序排序SELECT u.video_id, ROUND(SUM(IF(TIMESTAMPDIFF(SECOND,start_time,end_time) >= duration,1,0))/COUNT(start_time),3) AS avg_comp_play_rateFROM tb_user_video_log uINNER JOIN tb_video_info vON u.v.原创 2022-03-18 21:56:23 · 369 阅读 · 0 评论 -
【Kay】SQL窗口函数题目
一、每类试卷得分前3名现有试卷信息表examination_info试卷作答记录表exam_record请找到每类试卷得分的前3名,如果两人最大分数相同,选择最小分数大者,如果还相同,选择uid大者实例结果:代码如下:SELECT te.tid,uid,ranking FROM( SELECT tag AS tid, uid, ROW_NUMBER() OVER(PARTITION BY tag .原创 2022-03-07 21:19:37 · 374 阅读 · 0 评论 -
【Kay】SQL窗口函数学习
一.窗口函数引入:排名问题:每个部门,分别内部按业绩排名topN问题:找出每个部门排名前N的员工进行奖励面对这类需求,就需要使用sql的高级功能窗口函数了窗口函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理窗口函数的基本语法:<窗口函数> OVER (PARTITION BY <用于分组的列名> ORDER BY <用于排序的原创 2022-03-07 15:54:59 · 364 阅读 · 0 评论 -
【Kay】SQL聚合函数和分组查询
1.截断平均值请从exam_record数据表中计算所有用户完成SQL类别高难度试卷得分的截断平均值(去掉一个最大值和一个最小值后的平均值)SELECT tag,difficulty,ROUND((SUM(score)-MAX(score)-MIN(score))/(COUNT(score)-2),1)FROM exam_record rLEFT JOIN examination_info iON r.exam_id = i.exam_idWHERE tag = "SQL" AND sc原创 2022-02-27 21:14:29 · 462 阅读 · 0 评论 -
【Kay】SQL建表操作,索引增删
表的创建、修改与删除1.1 直接创建表: 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLEjohn (column_name1 data_type1 -- 列名和类型必选 [ PRIMARY KEY -- 可选的约束,主键 | FOREIGN KEY -- 外键,引用其他表的键值 | AUTO_...原创 2022-02-27 18:16:23 · 202 阅读 · 0 评论 -
【Kay】SQL增删改操作、表的创建与修改
一、增加行1.增加两行牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下:用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分; 用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。INSERT INTO exam_record(uid,start_time,exam_id,submit_time,score)VALUES(1001,'20原创 2022-02-27 17:45:43 · 620 阅读 · 0 评论 -
【Kay】MySQL综合题——复旦浙大练题情况
1.运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数,请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0SELECT u.device_id, u.university, COUNT(question_id) AS question_cnt, SUM(IF(result="right",1,0)) AS right_question_cntFROM user_profile uLEFT JOIN ques.原创 2022-02-26 22:18:39 · 379 阅读 · 0 评论 -
【Kay】MySQL必会常用函数
1.条件函数 CASE WHEN运营想要将用户划分为25岁以下和25岁及以上两个年龄段,分别查看这两个年龄段用户数量SELECTCASEWHEN age<25 OR age IS NULL THEN "25岁以下"WHEN age>=25 THEN "25岁及以上"END AS "age_cut",COUNT(*) AS "number"FROM user_profileGROUP BY age_cut2.日期函数1. 运营想要计算出2021年8月每天.原创 2022-02-26 19:41:13 · 355 阅读 · 0 评论