0
点赞
收藏
分享

微信扫一扫

MYSQL语句学习

登高且赋 2022-03-11 阅读 53

牛客网上提供在线MYSQL语句学习,根据出的题直接进行编写SQL,运行提交。

此文章用于记录学习过程中需要加强的知识点。

问题1:查询结果去重----查询某列中所有结果,并将该列中重复的值去掉,只保留一个值

SELECT DISTINCT 列名称 FROM 表名称

列名称为需要去重的对应列名

问题2:限制返回记录条数----只显示查询结果的前2条记录

select <列名>,<列名>,...from <表名> limit <参数值>;

select * from product limit (1,3)--返回结果index=1的开始的3条记录

select * from product limit 3;--返回结果index=0的开始的3条记录

limit n:只有一个参数时,代表返回从0开始的总的n条记录

limit m,n:m代表第一条记录的index编辑(第一条记录从0开始),n代表要返回的记录总数


 问题3:将查询结果中某列重命名显示

select <列名> as <新列名> from <表名> 

例如:SELECT device_id AS user_infos_example FROM user_profile LIMIT 2

问题4:查找除某值的记录信息

select <列名>,<列名>,...from <表名> where 列名 not in ('值1’,'值2' ......)

select device_id,gender,age,university from user_profile where university not in ('复旦大学');

问题5:过滤掉值不等于NULL的值

select <列名>,<列名>,...from <表名> where 列名 is not null

select <列名>,<列名>,...from <表名> where 列名 is null

注意:是否等于NULL值,不能用 <> null 或!= null 或=null

问题6:查找某列的最大值

select max(<列名>),<列名>,...from <表名> where 列名 ....

问题6:GROUP BY查找某组的个数之类的

题目:现在运营想要对每个学校不同性别的用户活跃情况和发帖数量进行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量。

用户信息表:user_profile

30天内活跃天数字段(active_days_within_30)

发帖数量字段(question_cnt)

回答数量字段(answer_cnt)

iddevice_idgenderageuniversitygpaactive_days_within_30question_cntanswer_cnt
12138male21北京大学3.47212
23214male复旦大学4.015525
36543female20北京大学3.212330
42315female23浙江大学3.6512
55432male25山东大学3.8201570
62131male28山东大学3.315713
74321male26复旦大学3.69652

select gender,university,count(device_id) as user_num,avg(active_days_within_30) as avg_active_day,avg(question_cnt) as avg_question_cnt from user_profile group by university,gender

.......持续补充
 

举报

相关推荐

0 条评论