SQL
sql记录
铁血阿张
这个作者很懒,什么都没留下…
展开
-
sql常见面试题(未完待续)
1.长表转宽表原表结构为:SELECT year, max(case when month=1 then amount else null end) m1, max(case when month=2 then amount else null end) m2, max(case when month=3 then amount else null end) m3, max(case when month=4 then amount else null end)原创 2020-06-26 11:49:30 · 589 阅读 · 7 评论 -
sql(数据分析群)
1.长表变宽表,使用case-when即可select username, max(case when sub = 'a' then per else null end) '英语', max(case when sub = 'b' then per else null end) '数学', max(case when sub = 'd' then per else null end) '化学', max(case when sub = 'e' then per el.原创 2020-06-17 12:10:43 · 275 阅读 · 0 评论 -
拼多多和猿辅导SQL题
以下SQL为本人手写,有些题目描述简单可能存在歧义,欢迎探讨交流一.case专题-商品订单数据数据表:订单表orders,大概字段有(order_id’订单号,'user_id‘用户编号’, order_pay‘订单金额’ ,order_time‘下单时间’,‘商品一级类目commodity_level_1’,‘商品二级类目commodity_level_2’)1. 求最近7天内每一个一级类目下成交总额排名前3的二级类目:select commodity_level_1,commodit.原创 2020-06-03 16:03:33 · 3399 阅读 · 10 评论 -
SQL50题总结
SQL50题学生表Student课程表Course教师表Teacher成绩表Score练习题目1、查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号(重点)2、查询平均成绩大于60分的学生的学号和平均成绩(简单,第二道重点)2.1、所有成绩小于60分的学生信息2.2、查询平均成绩小于60分的学生的学号和平均成绩,考虑没参加考试的情况3、查询所有学生的学号、姓名、选课数、总成绩(不重要)4、查询姓“猴”的老师的个数(不重要)5、查询没学过“张三”老师课的学生的学号、姓名(重点)6、查询学过“张原创 2020-05-15 15:04:19 · 827 阅读 · 0 评论 -
携程数据分析笔试第一题
complaints_complaint表:bu_product表:要求:查出每个事业部每天的投诉人数select c.UID,c.PID,c.ORDERID,date(c.DATE) date,b.BUfrom bu_product bleft join Complaints_Complaint con b.PID=c.PID;错误点:这里不应该写成c.PID,因为c表中P...原创 2020-05-07 18:54:00 · 923 阅读 · 0 评论 -
SQL50题(7、10、11、12、17、18)
学生表: Student(s_id,s_name,s_birth,s_sex) – –学生编号,学生姓名, 出生年月,学生性别课程表:Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号教师表: Teacher(t_id,t_name) – –教师编号,教师姓名成绩表: Score(s_id,c_id,s_s_score) – –学生编号,课程编号,分数...原创 2020-05-06 19:17:38 · 398 阅读 · 0 评论 -
MySQL七周数据分析
1.统计不同月份的下单人数SELECT date_format(paidTime,'%Y-%m'),count(distinct userID) FROM `orderinfo`where ispaid = '已支付'group by date_format(paidTime,'%Y-%m');2.统计用户三月份的回购率和复购率select count(*),count(if(c &...原创 2020-05-04 20:32:59 · 312 阅读 · 0 评论 -
MySQL的having和select顺序问题
我觉得可以看做select在having进行分组过滤前已经解析过,从而having可以使用select中的别名,下面这个例子可以明显看出。要求:从电子商务行业中,取出每个城市的数据相关职位数量超过50的城市和职位数量写法1:select city,count(*) from dataanalystwhere industryField like '%电子商务%'group by c...原创 2020-05-02 23:27:20 · 9130 阅读 · 11 评论 -
MySQL之窗口函数
窗口函数1 窗口函数定义1.1 语法结构1.2 特点2 窗口函数使用2.1 topN相关2.2 组内比较相关2.3 窗口函数的移动平均1 窗口函数定义窗口函数是OLAP(online analytical processing),可以对数据库内的数据实时分析处理。换句话来说,就是group by的完整显示版。1.1 语法结构<窗口函数> over(partition by ...原创 2020-04-28 18:12:16 · 1116 阅读 · 0 评论 -
MySQL实现累加、累乘、累减、累除
CREATE TABLE TEST( PARENT_ID INTEGER, PART_ID INTEGER, QUALITY INTEGER);INSERT INTO TEST VALUES(1,1,2);INSERT INTO TEST VALUES(1,2,3);INSERT INTO TEST VALUES(1,3,2);INSERT INTO TEST V...原创 2020-03-18 21:05:19 · 4500 阅读 · 2 评论 -
MySQL表连接 on and 和 on where 的区别
在使用left join时,on and和on where条件的区别如下:on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。注:左连接中如果and语句是对左表进行过滤的,那么不管真假都不起任何作用。如果是对右表过滤的,那么左表所有记录都返回,右表筛选以后再与左表连接返回where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left...原创 2020-03-05 16:37:16 · 502 阅读 · 1 评论 -
牛客网SQL-查找当前薪水排名第二多的员工,不准使用order by
题目描述查找当前薪水(to_date=‘9999-01-01’)排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order byCREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14)...原创 2020-03-04 21:08:20 · 469 阅读 · 0 评论