SQL(1/12)

按照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 KEY (emp_no,from_date));

select emp_no,salary,sum(salary) over(order by emp_no) running_total
from salaries
where to_date='9999-01-01';

对于employees表中,输出first_name排名)为奇数的first_name

对于employees表中,输出first_name排名(按first_name升序排序)为奇数的first_name
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));
如,输入为:
INSERT INTO employees VALUES(10001,‘1953-09-02’,‘Georgi’,‘Facello’,‘M’,‘1986-06-26’);
INSERT INTO employees VALUES(10002,‘1964-06-02’,‘Bezalel’,‘Simmel’,‘F’,‘1985-11-21’);
INSERT INTO employees VALUES(10005,‘1955-01-21’,‘Kyoichi’,‘Maliniak’,‘M’,‘1989-09-12’);
INSERT INTO employees VALUES(10006,‘1953-04-20’,‘Anneke’,‘Preusig’,‘F’,‘1989-06-02’);

select a.first_name
from (select emp_no,first_name,row_number() over(order by first_name) row_num
     from employees) a
where row_num%2=1
order by emp_no;

出现三次以及三次以上的积分

id为用户主键id,number代表积分情况,让你写一个sql查询,积分表里面出现三次以及三次以上的积分,查询结果如下:

select number
from grade
group by number
having count(*)>=3;

刷题通过的题目排名

在牛客刷题有一个通过题目个数的(passing_number)表,id是主键,简化如下:

第1行表示id为1的用户通过了4个题目;

第6行表示id为6的用户通过了4个题目;
请你根据上表,输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列,数据如下:

id为5的用户通过了5个排名第1,
id为1和id为6的都通过了2个,并列第2

select a.id,a.number,count(distinct b.number) t_rank
from passing_number a,passing_number b
where a.number<=b.number
group by a.id,a.number
order by t_rank asc;

找到每个人的任务

有一个person表,主键是id,如下:

有一个任务(task)表如下,主键也是id,如下:

请你找到每个人的任务情况,并且输出出来,没有任务的也要输出,而且输出结果按照person的id升序排序,输出情况如下:

select p.id,p.name,t.content
from person p
left join task t
on p.id=t.person_id
order by p.id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值