牛客网刷题SQL--条件查询

目录

SQL6--查找学校是北大的学生信息

描述

示例1

答案

SQL7--查找年龄大于24岁的用户信息

描述

示例1

答案

SQL8-查找某个年龄段的用户信息

描述

示例1

答案

其他方法:

SQL9--查找除复旦大学的学生信息

描述

示例1

答案

其他方法:

SQL10--用where过滤空值练习

描述

示例1

答案

其他方法:

SQL11--高级操作符练习(1)

描述

示例1

答案

其他方法:

SQL12--高级操作符练习(2)

描述

示例1

答案

[SQL13--Where in 和 Not in](#SQL13--Where in 和 Not in)

描述

示例1

答案

其他方法:

SQL14--操作符混合运用

描述

示例1

答案

其他方法:

SQL15--查看学校名称中含北京的用户

描述

示例1

答案

其他方法:

SQL36--查找后排序

描述

示例1

答案

SQL37--查找后多列排序

描述

示例1

答案

SQL38--查找后降序排列

描述

示例1

答案


SQL6--查找学校是北大的学生信息

描述

题目:现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。

示例:user_profile

|----|-----------|--------|-----|------------|----------|
| id | device_id | gender | age | university | province |
| 1 | 2138 | male | 21 | 北京大学 | Beijing |
| 2 | 3214 | male | | 复旦大学 | Shanghai |
| 3 | 6543 | female | 20 | 北京大学 | Beijing |
| 4 | 2315 | female | 23 | 浙江大学 | ZheJiang |
| 5 | 5432 | male | 25 | 山东大学 | Shandong |

根据示例,你的查询应返回以下结果:

|-----------|------------|
| device_id | university |
| 2138 | 北京大学 |
| 6543 | 北京大学 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');

输出:

2138|北京大学

6543|北京大学

答案

sql 复制代码
select device_id,university from user_profile where university="北京大学";

SQL7--查找年龄大于24岁的用户信息

描述

题目:现在运营想要针对24岁以上的用户开展分析,请你取出满足条件的设备ID、性别、年龄、学校。

用户信息表:user_profile

|----|-----------|--------|-----|------------|----------|
| id | device_id | gender | age | university | province |
| 1 | 2138 | male | 21 | 北京大学 | Beijing |
| 2 | 3214 | male | | 复旦大学 | Shanghai |
| 3 | 6543 | female | 20 | 北京大学 | Beijing |
| 4 | 2315 | female | 23 | 浙江大学 | ZheJiang |
| 5 | 5432 | male | 25 | 山东大学 | Shandong |

根据输入,你的 查询应返回以下结果:

|-----------|--------|-----|------------|
| device_id | gender | age | university |
| 5432 | male | 25 | 山东大学 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');

输出:

5432|male|25|山东大学

答案

sql 复制代码
select device_id,gender,age,university from user_profile where age>24;

SQL8-查找某个年龄段的用户信息

描述

题目:现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的设备ID、性别、年龄。

用户信息表:user_profile

|----|-----------|--------|-----|------------|----------|
| id | device_id | gender | age | university | province |
| 1 | 2138 | male | 21 | 北京大学 | Beijing |
| 2 | 3214 | male | | 复旦大学 | Shanghai |
| 3 | 6543 | female | 20 | 北京大学 | Beijing |
| 4 | 2315 | female | 23 | 浙江大学 | ZheJiang |
| 5 | 5432 | male | 25 | 山东大学 | Shandong |

根据输入,你的查询应返回以下结果:

|-----------|--------|-----|
| device_id | gender | age |
| 2138 | male | 21 |
| 6543 | female | 20 |
| 2315 | female | 23 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');

输出:

2138|male|21

6543|female|20

2315|female|23

答案

sql 复制代码
select device_id,gender,age from user_profile where age between 20 and 23;

其他方法:

sql 复制代码
SELECT device_id,gender,age
FROM user_profile
where age>=20 and age<=23
sql 复制代码
SELECT device_id,gender,age FROM user_profile WHERE age IN (20,21,22,23)

SQL9--查找除复旦大学的学生信息

描述

题目:现在运营想要查看除复旦大学以外的所有用户明细包括的字段有 device_id、gender、age、university,请你取出相应数据

示例:user_profile

|----|-----------|--------|-----|------------|----------|
| id | device_id | gender | age | university | province |
| 1 | 2138 | male | 21 | 北京大学 | Beijing |
| 2 | 3214 | male | | 复旦大学 | Shanghai |
| 3 | 6543 | female | 20 | 北京大学 | Beijing |
| 4 | 2315 | female | 23 | 浙江大学 | ZheJiang |
| 5 | 5432 | male | 25 | 山东大学 | Shandong |

根据输入,你的查询应返回以下结果:

|-----------|--------|-----|------------|
| device_id | gender | age | university |
| 2138 | male | 21 | 北京大学 |
| 6543 | female | 20 | 北京大学 |
| 2315 | female | 23 | 浙江大学 |
| 5432 | male | 25 | 山东大学 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');

输出:

2138|male|21|北京大学

6543|female|20|北京大学

2315|female|23|浙江大学

5432|male|25|山东大学

答案

sql 复制代码
select device_id,gender,age,university from user_profile where university!="复旦大学";

其他方法:

sql 复制代码
select device_id,gender,age,university
from user_profile
where university <> "复旦大学"
# where university != '复旦大学'
# where not university = '复旦大学'
# where university not in('复旦大学')
# where university not like '复旦大学'

SQL10--用where过滤空值练习

描述

题目:现在运营想要对用户的年龄分布开展分析,在分析时想要剔除没有获取到年龄的用户,请你取出所有年龄值不为空的用户的设备ID,性别,年龄,学校的信息。

示例:user_profile

|----|-----------|--------|-----|------------|----------|
| id | device_id | gender | age | university | province |
| 1 | 2138 | male | 21 | 北京大学 | Beijing |
| 2 | 3214 | male | | 复旦大学 | Shanghai |
| 3 | 6543 | female | 20 | 北京大学 | Beijing |
| 4 | 2315 | female | 23 | 浙江大学 | ZheJiang |
| 5 | 5432 | male | 25 | 山东大学 | Shandong |

根据输入,你的 查询应返回以下结果:

|-----------|--------|-----|------------|
| device_id | gender | age | university |
| 2138 | male | 21 | 北京大学 |
| 6543 | female | 20 | 北京大学 |
| 2315 | female | 23 | 浙江大学 |
| 5432 | male | 25 | 山东大学 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai');
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing');
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang');
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong');

输出:

2138|male|21|北京大学

6543|female|20|北京大学

2315|female|23|浙江大学

5432|male|25|山东大学

答案

sql 复制代码
select device_id,gender,age,university from user_profile where age is not null;

其他方法:

过滤空值的三种方法:

(1) Where 列名 is not null

(2) Where 列名 != 'null'

(3) Where 列名 <> 'null'

SQL11--高级操作符练习(1)

描述

题目:现在运营想要找到male且GPA在3.5以上(不包括3.5)的用户进行调研,请你取出相关数据。

示例:user_profile

|----|-----------|--------|-----|------------|-----|
| id | device_id | gender | age | university | gpa |
| 1 | 2138 | male | 21 | 北京大学 | 3.4 |
| 2 | 3214 | male | | 复旦大学 | 4.0 |
| 3 | 6543 | female | 20 | 北京大学 | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | 3.8 |

根据输入,你的查询应返回以下结果:

|-----------|--------|-----|------------|-----|
| device_id | gender | age | university | gpa |
| 3214 | male | | 复旦大学 | 4.0 |
| 5432 | male | 25 | 山东大学 | 3.8 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);

输出:

3214|male|None|复旦大学|4.0

5432|male|25|山东大学|3.8

答案

sql 复制代码
select device_id,gender,age,university,gpa from user_profile where gender="male" and gpa > 3.5;

其他方法:

sql 复制代码
SELECT device_id, gender, age, university,gpa
FROM user_profile
WHERE gpa >3.5 AND gender in('male')

SQL12--高级操作符练习(2)

描述

题目:现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研,请你取出相关数据(使用OR实现)

示例:user_profile

|----|-----------|--------|-----|------------|-----|
| id | device_id | gender | age | university | gpa |
| 1 | 2138 | male | 21 | 北京大学 | 3.4 |
| 2 | 3214 | male | | 复旦大学 | 4.0 |
| 3 | 6543 | female | 20 | 北京大学 | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | 3.8 |

根据输入,你的查询应返回以下结果:

|-----------|--------|-----|------------|-----|
| device_id | gender | age | university | gpa |
| 2138 | male | 21 | 北京大学 | 3.4 |
| 3214 | male | | 复旦大学 | 4.0 |
| 6543 | female | 20 | 北京大学 | 3.2 |
| 5432 | male | 25 | 山东大学 | 3.8 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);

输出:

2138|male|21|北京大学|3.4

3214|male|None|复旦大学|4.0

6543|female|20|北京大学|3.2

5432|male|25|山东大学|3.8

答案

sql 复制代码
select device_id,gender,age,university,gpa from user_profile where university="北京大学" or gpa>3.7;

SQL13--Where in 和 Not in

描述

题目:现在运营想要找到学校为北大、复旦和山大的同学进行调研,请你取出相关数据。

示例:user_profile

|----|-----------|--------|-----|------------|-----|
| id | device_id | gender | age | university | gpa |
| 1 | 2138 | male | 21 | 北京大学 | 3.4 |
| 2 | 3214 | male | | 复旦大学 | 4.0 |
| 3 | 6543 | female | 20 | 北京大学 | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | 3.8 |

根据输入,你的查询应返回以下结果:

|-----------|--------|-----|------------|-----|
| device_id | gender | age | university | gpa |
| 2138 | male | 21 | 北京大学 | 3.4 |
| 3214 | male | | 复旦大学 | 4.0 |
| 6543 | female | 20 | 北京大学 | 3.2 |
| 5432 | male | 25 | 山东大学 | 3.8 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);

复制输出:

2138|male|21|北京大学|3.4

3214|male|None|复旦大学|4.0

6543|female|20|北京大学|3.2

5432|male|25|山东大学|3.8

答案

sql 复制代码
select device_id,gender,age,university,gpa from user_profile where university in ("北京大学","复旦大学","山东大学");

其他方法:

sql 复制代码
select device_id,gender,age,university,gpa
from user_profile
where find_in_set(university,'北京大学,复旦大学,山东大学');
sql 复制代码
select device_id,gender,age,university,gpa
from user_profile
WHERE university="北京大学" or university="复旦大学" or university="山东大学"
sql 复制代码
# NOT IN
select device_id ,gender, age, university, gpa
from user_profile
where university NOT IN ("浙江大学");

SQL14--操作符混合运用

描述

题目:现在运营想要找到gpa在3.5以上(不包括3.5)的山东大学用户 或 gpa在3.8以上(不包括3.8)的复旦大学同学进行用户调研,请你取出相应数据,取出的数据按照device_id升序排列

示例:user_profile

|----|-----------|--------|------|------------|----------|-----|
| id | device_id | gender | age | university | province | gpa |
| 1 | 2138 | male | 21 | 北京大学 | BeiJing | 3.4 |
| 2 | 3214 | male | NULL | 复旦大学 | Shanghai | 4 |
| 3 | 6543 | female | 20 | 北京大学 | BeiJing | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | ZheJiang | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | Shandong | 3.8 |

根据输入,你的查询应返回以下结果:(该题对于小数点后面的0不需要计算与统计,后台系统会统一输出小数点后面1位)

|-----------|--------|------|------------|-----|
| device_id | gender | age | university | gpa |
| 3214 | male | NULL | 复旦大学 | 4 |
| 5432 | male | 25 | 山东大学 | 3.8 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学','BeiJing',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学','Shanghai',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学','BeiJing',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学','ZheJiang',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学','Shandong',3.8);

输出:

3214|male|None|复旦大学|4.0

5432|male|25|山东大学|3.8

答案

sql 复制代码
select device_id,gender,age,university,gpa from user_profile where gpa>3.5 and university="山东大学"
union 
select device_id,gender,age,university,gpa from user_profile where gpa>3.8 and university="复旦大学" order by device_id asc;

其他方法:

sql 复制代码
SELECT 
    device_id, gender, age, university,gpa 
from 
    user_profile 
where 
    (gpa > 3.8 and university = '复旦大学') or (gpa > 3.5 and university = '山东大学')

SQL15--查看学校名称中含北京的用户

描述

题目:现在运营想查看所有大学中带有"北京"的用户的信息(device_id,age,university),请你取出相应数据。

示例:用户信息表:user_profile

|----|-----------|--------|-----|------------|-----|
| id | device_id | gender | age | university | gpa |
| 1 | 2138 | male | 21 | 北京大学 | 3.4 |
| 2 | 3214 | male | | 复旦大学 | 4.0 |
| 3 | 6543 | female | 20 | 北京大学 | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | 3.8 |
| 6 | 2131 | male | 28 | 北京师范大学 | 3.3 |

根据示例,你的查询应返回如下结果:

|-----------|-----|------------|
| device_id | age | university |
| 2138 | 21 | 北京大学 |
| 6543 | 20 | 北京大学 |
| 2131 | 28 | 北京师范大学 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8);
INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);

输出:

2138|21|北京大学

6543|20|北京大学

2131|28|北京师范大学

答案

sql 复制代码
select device_id,age,university from user_profile where university like'%北京%';

其他方法:

sql 复制代码
select device_id,age,university
from user_profile 
where university regexp '北京';
sql 复制代码
select device_id,age,university
from user_profile 
where university like '北京';
sql 复制代码
select device_id,age,university
from user_profile 
where locate('北京',university);
sql 复制代码
select device_id,age,university
from user_profile 
where instr(university,'北京');
sql 复制代码
select device_id,age,university
from user_profile 
where substr(university,1,2) = '北京';

SQL36--查找后排序

描述

题目:现在运营想要取出用户信息表中的用户设备ID和用户年龄,请取出相应数据,并按照年龄升序排序。

示例:user_profile

|----|-----------|--------|-----|------------|-----|
| id | device_id | gender | age | university | gpa |
| 1 | 2138 | male | 21 | 北京大学 | 3.4 |
| 2 | 3214 | male | 23 | 复旦大学 | 4 |
| 3 | 6543 | female | 20 | 北京大学 | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | 3.8 |
| 6 | 2131 | male | 28 | 北京师范大学 | 3.3 |

根据示例,你的查询应返回以下结果:

|-----------|-----|
| device_id | age |
| 6543 | 20 |
| 2138 | 21 |
| 3214 | 23 |
| 2315 | 23 |
| 5432 | 25 |
| 2131 | 28 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',23,'复旦大学',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8);
INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);

输出:

6543|20

2138|21

3214|23

2315|23

5432|25

2131|28

答案

sql 复制代码
select device_id,age from user_profile order by age asc;

SQL37--查找后多列排序

描述

题目:现在运营想要取出用户信息表中的device_id、年龄和gpa数据,并先按照gpa升序排序,再按照年龄升序排序输出,请取出相应数据。

用户信息表:user_profile

|----|-----------|--------|-----|------------|-----|
| id | device_id | gender | age | university | gpa |
| 1 | 2138 | male | 21 | 北京大学 | 3.4 |
| 2 | 3214 | male | 23 | 复旦大学 | 4 |
| 3 | 6543 | female | 20 | 北京大学 | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | 3.8 |
| 6 | 2131 | male | 28 | 北京师范大学 | 3.3 |

你的查询应返回以下结果:

|-----------|-----|-----|
| device_id | gpa | age |
| 6534 | 3.2 | 20 |
| 2131 | 3.3 | 28 |
| 2138 | 3.4 | 21 |
| 2315 | 3.6 | 23 |
| 5432 | 3.8 | 25 |
| 3214 | 4 | 23 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',23,'复旦大学',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8);
INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);

输出:

6543|3.200|20

2131|3.300|28

2138|3.400|21

2315|3.600|23

5432|3.800|25

3214|4.000|23

答案

sql 复制代码
select device_id,gpa,age from user_profile order by gpa asc,age asc;

SQL38--查找后降序排列

描述

题目:现在运营想要取出用户信息表中对应的数据,并先按照gpa降序排列、gpa相同的按照年龄降序排序输出,请取出相应数据。

示例 user_profile:

|----|-----------|--------|-----|------------|-----|
| id | device_id | gender | age | university | gpa |
| 1 | 2138 | male | 21 | 北京大学 | 3.4 |
| 2 | 3214 | male | 23 | 复旦大学 | 4 |
| 3 | 6543 | female | 20 | 北京大学 | 3.2 |
| 4 | 2315 | female | 23 | 浙江大学 | 3.6 |
| 5 | 5432 | male | 25 | 山东大学 | 3.8 |
| 6 | 2131 | male | 28 | 北京师范大学 | 3.3 |

根据示例,你的查询应返回以下结果:

|-----------|-----|-----|
| device_id | gpa | age |
| 3214 | 4 | 23 |
| 5432 | 3.8 | 25 |
| 2315 | 3.6 | 23 |
| 2138 | 3.4 | 21 |
| 2131 | 3.3 | 28 |
| 6543 | 3.2 | 20 |

示例1

输入:

sql 复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`gpa` float);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4);
INSERT INTO user_profile VALUES(2,3214,'male',23,'复旦大学',4.0);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8);
INSERT INTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);

输出:

3214|4.0|23

5432|3.8|25

2315|3.6|23

2138|3.4|21

2131|3.3|28

6543|3.2|20

答案

sql 复制代码
select device_id,gpa,age from user_profile order by gpa desc,age desc;

升序排序asc可以省略,降序排列不能省略;

相关推荐
Jelena技术达人4 分钟前
1688接口探索:商品详情和关键字搜索API接口
前端·数据库
E___V___E17 分钟前
非常简单实用的前后端分离项目-仓库管理系统(Springboot+Vue)part 4
java·vue.js·spring boot
岳轩子26 分钟前
23种设计模式之责任链模式
java·设计模式·责任链模式
grasperp28 分钟前
管家婆工贸ERP PB001.MRP分仓计算在订量
数据库·制造·个人开发
rundreamsFly44 分钟前
【大模型】PostgreSQL是向量数据库吗
数据库·postgresql·向量数据库
JhonKI1 小时前
【MySQL】复合查询
android·数据库·mysql
qq_10799104051 小时前
2290 ASP.NET+SQL+LW+C# 基于.NET旅游网站系统的设计与实现 源码 配置 文档
sql·c#·asp.net
码农阿豪1 小时前
快递智能地址解析API接口对接实现指南
java·物流地址解析·智能地址解析api·物流查询开放平台·解析快递内容地址
阿智@111 小时前
跨域 Cookie 共享
java·开发语言·javascript
盖盖衍上1 小时前
7. MySQL 管理:系统数据库与常见工具
数据库·mysql