SQL
文章平均质量分 51
数星星的小贝壳
这个作者很懒,什么都没留下…
展开
-
SQL练习和解答 9. 使用含有关键字exists查找未分配具体部门的员工的所有信息--exists的使用
题目描述使用含有关键字exists查找未分配具体部门的员工的所有信息。CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (原创 2020-06-05 22:29:40 · 359 阅读 · 0 评论 -
SQL练习及解答 9. 获取有奖金的员工相关信息--表的连接
题目描述获取有奖金的员工相关信息。CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));CREATE原创 2020-06-03 23:53:48 · 616 阅读 · 0 评论 -
SQL练习及解答 8.统计salary的累计和running_total--表的连接和子查询
题目描述按照salary的累计和running_total,其中running_total为前N个当前(to_date = '9999-01-01')员工的salary累计和,其他以此类推。 具体结果如下Demo展示。。CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KE.原创 2020-06-02 23:43:10 · 369 阅读 · 0 评论 -
SQL练习及解答 5. 查找所有员工的last_name和first_name以及对应部门编号dept_no
题目描述查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括暂时没有分配具体部门的员工(请注意输出描述里各个列的前后顺序)CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREA原创 2020-06-01 22:10:41 · 490 阅读 · 0 评论 -
SQL练习及解答 7. 查找薪水变动超过15次的员工号emp_no以及其对应的变动次数t--having的使用
题目描述查找薪水变动超过15次的员工号emp_no以及其对应的变动次数tCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));select emp_no, count(salary) tfrom salariesg原创 2020-06-01 22:01:16 · 543 阅读 · 0 评论 -
SQL练习及解答 6. 找所有员工入职时候的薪水情况--表的多条件连接
题目描述查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序(请注意,一个员工可能有多次涨薪的情况)CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hir原创 2020-05-31 23:47:08 · 303 阅读 · 0 评论 -
SQL练习及解答 4. 查找所有已经分配部门的员工的last_name和first_name以及dept_no--表的连接
题目描述查找所有已经分配部门的员工的last_name和first_name以及dept_no(请注意输出描述里各个列的前后顺序)CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `employ原创 2020-05-29 22:18:20 · 405 阅读 · 0 评论 -
SQL练习及解答 3.查找当前薪水详情以及部门编号--表的连接
题目描述查找各个部门当前(dept_manager.to_date='9999-01-01')领导当前(salaries.to_date='9999-01-01')薪水详情以及其对应部门编号dept_no(请注意输出结果,dept_no列是最后一列)CREATE TABLE `dept_manager` (`dept_no` char(4) NOT NULL comment '部门编号',`emp_no` int(11) NOT NULL comment '员工编号',`from_date` d原创 2020-05-28 21:17:53 · 343 阅读 · 0 评论 -
SQL练习及解答 2. 查找入职员工时间排名倒数第三的员工所有信息--limit m,n的使用
题目描述查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NO原创 2020-05-27 17:02:04 · 1615 阅读 · 0 评论 -
SQL练习及解答 1. 查找最晚入职员工的所有信息--子查询的使用
题目描述查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天CREATE TABLE `employees` (`emp_no` int(11) NOT NULL comment '员工编号',`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date`.原创 2020-05-27 16:45:40 · 432 阅读 · 0 评论 -
【SQL】删除函数delete, truncate, drop区别
delete truncate drop 是否要commit 为DML(data ManipulationLanguage),要commit 为DLL(datadefinelanguage),不用提交,不能回滚 为DLL(da...原创 2019-11-16 17:29:02 · 453 阅读 · 0 评论 -
【SQL】窗口函数/开窗函数
窗口指一个字段的数据范围, 原则上只能写在SELECT子句中。同时具有分组和排序功能,不减少原表的行数(group by 可能减少原表行数,而partition by 不会)。HQL distribute by & cluster by & order bydistribute by 会把相同的值分配到同一个reduce里;cluster by其实就是distr...原创 2019-11-16 16:47:18 · 1435 阅读 · 0 评论 -
【SQL】排序函数
1. ROW_NUMBER()排序值相同时序号不同,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。其基本原理是先使用over子句中的排序语句对记录进行排序,然后按照这个顺序生成序号。over子句中的order by子句与SQL语句中的order by子句没有任何关系,这两处的order by 可以完全不同2. RANK()...原创 2019-11-16 16:05:57 · 5975 阅读 · 0 评论 -
【小练习】SQL-查重
查出重复的学生名NO name 1 JONE 2 LILY 3 TOM 4 LILY 5 TOM 方法一:SELECT nameFROM(SELECT name, count(name) numFROM table) tWHERE num &...原创 2019-10-25 11:52:03 · 240 阅读 · 0 评论 -
【小练习】SQL_JOIN
为与客户名称Walmart相关的所有web_events创建一个表格。表格应该包含三列:primary_poc、事件时间和每个事件的渠道。此外,你可以选择添加第四列,确保仅选中了Walmart事件。 SELECT a.primary_poc, w.occurred_at, w.channel, a.nameFROM web_events wJOIN accounts...原创 2018-05-06 23:34:53 · 247 阅读 · 0 评论 -
【小练习】SQL_HAVING
HAVING 有多少位销售代表需要管理超过 5 个客户? SELECT s.id, s.name, COUNT(*) num_accountsFROM accounts aJOIN sales_reps sON s.id = a.sales_rep_idGROUP BY s.id, s.nameHAVING COUNT(*) > 5ORDER BY num_...原创 2018-05-08 15:47:15 · 377 阅读 · 0 评论 -
【小练习】SQL_DISTINCT
DISTINCT 使用DISTINCT检查是否有任何客户与多个区域相关联? 下面的两个查询产生了相同的行数(351 行),因此我们知道每个客户仅与一个区域相关联。如果每个客户与多个区域相关联,则第一个查询返回的行数应该比第二个查询的多。 SELECT DISTINCT a.id, r.id, a.name, r.nameFROM accounts aJOIN sales_...原创 2018-05-08 00:26:23 · 217 阅读 · 0 评论 -
【小练习】SQL_GROUP BY
哪个客户(按照名称)下的订单最早?你的答案应该包含订单的客户名称和日期。 SELECT a.name, o.occurred_atFROM accounts aJOIN orders oON a.id = o.account_idORDER BY occurred_atLIMIT 1; 算出每个客户的总销售额(单位是美元)。答案应该包括两列:每个公司的订单总...原创 2018-05-07 23:40:47 · 323 阅读 · 0 评论 -
【小练习】SQL_OR
Find list ofordersids where eithergloss_qtyorposter_qtyis greater than 4000. Only include theidfield in the resulting table. Write a query that returns a list oforderswhere thesta...原创 2018-07-14 23:41:34 · 215 阅读 · 0 评论 -
【小练习】SQL_AND&BETWEEN
Write a query that returns all the orders where the standard_qty is over 1000, the poster_qty is 0, and the gloss_qty is 0.Using the accounts table find all the companies whose names do not start with...原创 2018-07-14 23:29:25 · 212 阅读 · 0 评论 -
【小练习】SQL_子查询
一 返回的是一个table:问题:find the average number of events for each day for each channel.The first table will provide us the number of events for each day and channel, and then we will need to averag...原创 2018-05-09 21:20:40 · 572 阅读 · 0 评论