查看: 2396| 回复: 9
跳转到指定楼层
上一主题 下一主题
收起左侧

文科小白刷题记录

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
考完试了开始找实习,随时连着点以防忘记吧!最重要的是坚持,和学到东西。
day 1 7.3.2018
leetcode上不去诶?应该不是我的问题,去中文版的leetcode上做题了:
1. 组合两个表的时候,把悬浮元组也保存在结果关系中——FROM table1 LEFT OUTER JOIN table2 ON ( 相同属性作为链接桥梁)
SELECT FirstName, LastName, City,State
FROM Person LEFT OUTER JOIN Address ON (Person.PersonId = Address.PersonId)
#去掉重复值: FROM Person LEFT OUTER JOIN Address USING (Person.PersonId);

2.second hihgest salary
  • 有可能存在相同薪水的情况,注意去重distinct   select distinct
  • 给查询的结果起别名 用as,语法:原列名 as 新列名  select distinct salary as SecondHighestSalary from Employee
  • 分类order by,默认升序排列(ASC),降序排列(DESC)OREDER BY Salary DESC
  • 限制结果数量LIMIT,只有一个参数时,代表行数;2个参数时,LIMIT(偏移量,显示行数),偏移量从0开始计数;返回第二条记录,用 Limit 1,1
  • 如果不存在第二高的薪水,那么查询应返回 null;要用 IFNULL语法:IFNULL(A,B),如果不为空返回第一个参数A,为空返回参数B



上一篇:别划了呀 学习打卡贴
下一篇:开帖刷题冲进度!
推荐
 楼主| askjoijosdif 2018-7-18 05:30:40 | 只看该作者
全局:
569. Median Employee Salary-寻找中位数
用sum + (case when else end)来计算某一个值出现的频数
计算频数
CASE
WHEN Employee.Salary = alias.Salary
THEN 1   
ELSE 0
abs()绝对值
sign()和Decode() 的结合使用
计算比某一个元素大(返回1)小(返回-1)等于(返回0)
SIGN(Employee.Salary - alias.Salary)

ABS(SUM(SIGN(Employee.Salary - alias.Salary)))
the absolute difference of its bigger elements and small ones
在同一个公司比较
WHERE Employee.Company = alias.Company
GROUP BY Employee.Company , Employee.Salary
定义变量
回复

使用道具 举报

🔗
 楼主| askjoijosdif 2018-7-4 23:12:56 | 只看该作者
全局:
【day 2】
今天成功打开leetcode!多好啊,上面还有答案和解答
177. Nth Highest Salary
自定义函数在SQL中的运用
limit
[b]178. Rank Scores
[/b]

评分

参与人数 1大米 +3 收起 理由
惊涛骇浪099 + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| askjoijosdif 2018-7-5 23:48:08 | 只看该作者
全局:
【day 3】
180. Consecutive Numbers
用id来确定是连续的记录
表和自身的连接
a.Num = b.Num = c.Num;  (x)
a.Num = b.Num and b.Num= c.Num; (correct)

181. Employees Earning More Than Their Managers
和自身表的连接
或者用inner join

补充内容 (2018-7-5 23:50):
或者直接用个连接就行
回复

使用道具 举报

🔗
 楼主| askjoijosdif 2018-7-6 21:37:46 | 只看该作者
全局:
【day 4】
182. Duplicate Emails
group by + having count(Email)

183. Customers Who Never Order
left join + where is null
回复

使用道具 举报

🔗
forup 2018-7-10 05:50:56 | 只看该作者
全局:
SQL 的题也很多
回复

使用道具 举报

🔗
 楼主| askjoijosdif 2018-7-10 20:07:26 | 只看该作者
全局:
【day 5】
184.Department Highest Salary
1. join + in
2. employee e + department d+ max(salary), department id ,joined by department id

185. Department Top Three Salaries
A top 3 salary in this company means there is no more than 3 salary bigger than itself in the company.
计算同一部门中工资比某个人大的个数,选取这个个数小于3的记录

补充内容 (2018-7-10 21:41):
选择top n的方法
回复

使用道具 举报

🔗
 楼主| askjoijosdif 2018-7-10 22:32:35 | 只看该作者
全局:
【day 6】
196. Delete Duplicate Emails
where p1.Email=p2.Email and p1.Id>p2.Id
用p1.Id>p2.Id 来确保只删除了一条记录
或者
用not in + 子查询(group by email, min(id)) 来确定需要删除的id

197. Rising Temperature
DATEDIFF(); where b.Recorddate = dateadd(day,1,a.recorddate)
不能用id来计算前一天和后一天
回复

使用道具 举报

🔗
 楼主| askjoijosdif 2018-7-18 05:43:37 | 只看该作者
全局:
570. Managers with at Least 5 Direct Reports

Count(*)与count(字段名)的区别
回复

使用道具 举报

🔗
 楼主| askjoijosdif 2018-7-18 22:58:32 | 只看该作者
全局:
571.

Find Median Given Frequency of Numbers
AccFreq范围在[SumFreq / 2, SumFreq / 2 + Frequency]的Number均值即为答案
???

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表