首页 > 数据库 >SQl server 练习3

SQl server 练习3

时间:2024-07-12 13:01:38浏览次数:15  
标签:INSERT practice INTO 练习 question detail server VALUES SQl

课后作业

在homework库下执行:

CREATE TABLE user_profile_2 (

id int NOT NULL,

device_id int NOT NULL,

gender varchar(14) NOT NULL,

age int ,

university varchar(32) NOT NULL,

gpa float,

active_days_within_30 float,

question_cnt float,

answer_cnt float

);

INSERT INTO user_profile_2 VALUES(1,2138,'male',21,'北京大学',3.4,7,2,12);

INSERT INTO user_profile_2 VALUES(2,3214,'male',null,'复旦大学',4.0,15,5,25);

INSERT INTO user_profile_2 VALUES(3,6543,'female',20,'北京大学',3.2,12,3,30);

INSERT INTO user_profile_2 VALUES(4,2315,'female',23,'浙江大学',3.6,5,1,2);

INSERT INTO user_profile_2 VALUES(5,5432,'male',25,'山东大学',3.8,20,15,70);

INSERT INTO user_profile_2 VALUES(6,2131,'male',28,'山东大学',3.3,15,7,13);

INSERT INTO user_profile_2 VALUES(7,4321,'male',28,'复旦大学',3.6,9,6,52);

注:

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

发帖数量字段(question_cnt)

回答数量字段(answer_cnt)

作业1:

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

查询语句:

select gender,university, count(*) as user_num,
avg(cast(active_days_within_30 as float))as avg_active_days,
avg(cast(question_cnt as float))as avg_quesition_days 
from user_profile_2 group by university, gender order by university;

最后正确结果应是:

作业2:

现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。

查询语句:

select university,
avg(cast(question_cnt as float))as avg_quesition_days,
avg(cast(answer_cnt as float))as avg_answer_days 
from user_profile_2 
group by university 
having avg(cast(question_cnt as float))<5 or avg(cast(answer_cnt as float))<20;

最后正确结果应是:

作业3:

现在运营想要查看不同大学的用户平均发帖情况,并期望结果按照平均发帖情况进行升序排列

查询语句:

select university,
avg(cast(question_cnt as float))as avg_quesition_days
from user_profile_2 
group by university order by avg(cast(question_cnt as float));

最后正确结果应是:

在homework库下执行:

执行以下建表语句:

CREATE TABLE question_practice_detail (

id int NOT NULL,

device_id int NOT NULL,

question_id int NOT NULL,

result varchar(32) NOT NULL

);

INSERT INTO question_practice_detail VALUES(1,2138,111,'wrong');

INSERT INTO question_practice_detail VALUES(2,3214,112,'wrong');

INSERT INTO question_practice_detail VALUES(3,3214,113,'wrong');

INSERT INTO question_practice_detail VALUES(4,6543,111,'right');

INSERT INTO question_practice_detail VALUES(5,2315,115,'right');

INSERT INTO question_practice_detail VALUES(6,2315,116,'right');

INSERT INTO question_practice_detail VALUES(7,2315,117,'wrong');

INSERT INTO question_practice_detail VALUES(8,5432,118,'wrong');

INSERT INTO question_practice_detail VALUES(9,5432,112,'wrong');

INSERT INTO question_practice_detail VALUES(10,2131,114,'right');

INSERT INTO question_practice_detail VALUES(11,5432,113,'wrong');

目前我们有两张表:user_profile_2和question_practice_detail

作业4:

现在运营想要查看所有来自浙江大学的用户题目回答明细情况,请你取出相应数据

select question_practice_detail.device_id,
question_id,
result 
from question_practice_detail
inner join user_profile_2 on user_profile_2.device_id=question_practice_detail.device_id 
where user_profile_2.university='浙江大学';

最后正确结果应是:

标签:INSERT,practice,INTO,练习,question,detail,server,VALUES,SQl
From: https://blog.csdn.net/m0_67688142/article/details/140360005

相关文章

  • You have an error in your SQL syntax; check the manual that corresponds to your
    错误提示:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMariaDBserverversionfortherightsyntaxtousenear'TYPE=InnoDB'atline22解决方案:错误消息提示了在SQL语句的第22行附近有一个语法错误,特别是与TYPE=InnoDB这部分有关。......
  • PGSQL快速生成模拟数据
    背景有时候,我们为了测试数据库的性能,通常需要快速构建测试数据,PgSql提供了快速构建数据的工具,方便我们能够快捷的构建模拟数据。生成函数顺序生成生成SQL--生成一批顺序值SELECTidFROMGENERATE_SERIES(1,10)t(id);结果id1234......
  • PGSQL数据膨胀问题排查
    背景不知道从何时开始,数据库空载时的性能消耗越来越高,当业务高峰期,CPU和内存都处于高负载的情况下,观看AWS的监控,发现负载空载时占用很高。并且占用较高的Top5分为为:autovacuum:VACUUMANALYZEpg_catalog.pg_attributeautovacuum:VACUUMANALYZEpg_catalog.pg_typea......
  • MySQL入门学习-深入索引.全值匹配
        在MySQL中,索引的全值匹配是指在查询中使用索引列的所有部分进行精确匹配。当查询条件中的列值与索引中的值完全匹配时,MySQL可以使用索引来快速定位和检索数据,从而提高查询性能。    以下是关于全值匹配的一些详细信息:一、概念:  -全值匹配是指在查......
  • MySQL入门学习-深入索引.唯一索引
        在MySQL中,索引是一种用于提高数据库查询性能的数据结构。深入了解索引对于优化数据库操作非常重要。以下是关于唯一索引的相关内容:一、概念:  -唯一索引是一种特殊的索引,它确保表中的某一列或列组合的值是唯一的,不允许出现重复值。二、特点:  -保证数......
  • Linux & Shell 编程基础—— 构建基本脚本(练习)
    1.创建shell脚本文件、显示消息练习1:•构建一个脚本文件执行创建新用户、给新用户分组、查看当前登录的用户•为刚刚构建的脚本文件添加输出前的提示•运行该脚本文件查看返回结果2、使用变量、输出重定向、用wc命令查看文件行数练习2......
  • 使用token调用apiserver
    一、前置条件和说明:1.已安装k3s,并完成kubeconfig配置2.k8s1.24之后的版本,创建service account时,不会自动创建secret,需要手工创建secret 二、步骤1.创建service accountapiVersion:v1kind:ServiceAccountmetadata:name:apiserver-sanamespace:kube-system......
  • MySQL 数据库的 DDL
    备份MySQL数据库的DDL(数据定义语言)语句包括导出数据库结构(如表、视图、触发器、存储过程和函数等),但不包括实际数据。通常使用mysqldump工具进行此类操作。以下是具体的方法:备份DDL1.导出数据库结构(不包括数据)使用mysqldump工具导出数据库结构,可以指定--no-data......
  • MySQL日志详解
    一、前言日志文件中记录着MySQL数据库运行期间发生的变化;包括MySQL数据库的客户端连接状况、SQL语句的执行情况和错误信息等,是MySQL数据库的重要组成部分。MySQL日志分类:错误日志查询日志慢查询日志事务日志(Redolog)二进制日志中继日志二、错误日志默认情况下,错误......
  • FILE+POS 方式 GreatSQL 主从复制架构给主节点磁盘扩容
    FILE+POS方式GreatSQL主从复制架构给主节点磁盘扩容一、前提在一套非常老的系统上,有一套GreatSQL主从集群(1主1从),主从复制采用的是FILE+POS方式复制,磁盘使用紧张需要扩容,只能在该台机器上添加更大的磁盘,将原数据盘替换,也没有其他的机器资源替换。这套系统没有VIP,没有高可用切......