当前位置: 首页 > news >正文

sql server 练习题5

课后作业

在homework库下执行

作业1:

案例:根据用户分数划分等级。小于60分为不及格,[60,80)为及格,[80,90)为良好,大于等于90分以上为优秀。

建表语句:

CREATE TABLE Grades (

    ID INT PRIMARY KEY,

    Name VARCHAR(50),

    Score INT

);

数据插入语句:

-- 插入一些示例数据

INSERT INTO Grades (ID, Name, Score) VALUES (1, '张三', 95);

INSERT INTO Grades (ID, Name, Score) VALUES (2, '李四', 85);

INSERT INTO Grades (ID, Name, Score) VALUES (3, '王五', 70);

INSERT INTO Grades (ID, Name, Score) VALUES (4, '赵六', 58);

INSERT INTO Grades (ID, Name, Score) VALUES (5, '陈七', 30);

查询语句:

select Name, case  when Score>90 then '优秀' 
when Score>=80 and Score<90  then '良好'
when Score>=60 and Score<80 then '及格'
else  '不及格' end from Grades;

希望得到的结果如下:

作业2:

查询过去一周内的活动记录

建表语句

CREATE TABLE ActivityLog (

    ActivityID INT PRIMARY KEY IDENTITY(1,1),

    UserID INT NOT NULL,

    ActivityType VARCHAR(50) NOT NULL,

    ActivityTime DATETIME NOT NULL

);

这个ActivityLog表设计包含ActivityID(主键,自动增长)、UserID(执行活动的用户ID)、ActivityType(活动类型,如登录、发布、评论等)和ActivityTime(活动发生的时间)字段。

数据插入语句

接下来,我们将插入一些示例数据,确保其中包含过去一周内的活动记录:

-- 插入过去一周内的活动记录

INSERT INTO ActivityLog(UserID, ActivityType, ActivityTime)

VALUES (101, 'Login', DATEADD(DAY, -3, GETDATE())), -- 三天前的登录活动

       (102, 'Post', DATEADD(HOUR, -24, GETDATE())), -- 昨天的发帖活动

       (103, 'Comment', DATEADD(DAY, -6, GETDATE())), -- 六天前的评论活动

       (104, 'Logout', DATEADD(HOUR, -72, GETDATE())), -- 三天前的登出活动

       (105, 'Like', GETDATE() - 7); -- 正好一周前的点赞活动

-- 插入超过一周的活动作为对比

INSERT INTO ActivityLog(UserID, ActivityType, ActivityTime)

VALUES (106, 'Share', DATEADD(WEEK, -2, GETDATE())); -- 两周前的分享活动

这些插入语句模拟了不同用户在过去一周内进行的各种活动记录,同时也加入了一条超过一周的记录作为对比,以便在执行查询时能明确区分哪些活动是在过去一周内发生的。

如果你想找出最近一周内所有的活动记录,查询语句应写为:

select *from ActivityLog where ActivityTime>=dateadd(week,-1,getdate());

作业3:

计算订单处理时长

如果有Orders表,包含OrderPlaced(订单下单时间)和OrderCompleted(订单完成时间)字段,你可以计算每个订单的处理时长:

建表语句

首先,我们来创建一个Orders表,以保存订单的放置时间和完成时间,以及其他可能需要的信息。

CREATE TABLE Orders (

    OrderID INT PRIMARY KEY IDENTITY(1,1),

    CustomerID INT NOT NULL,

    OrderPlaced DATETIME NOT NULL,

    OrderCompleted DATETIME,

    TotalAmount DECIMAL(10, 2) NOT NULL

);

在这个表结构中,OrderID是主键且自动递增,CustomerID存储客户ID,OrderPlaced和OrderCompleted分别存储订单的放置时间和完成时间,而TotalAmount表示订单总金额。

数据插入语句

接下来,我们向Orders表中插入一些示例数据,包括订单的放置时间和完成时间,以便演示处理时长的计算。

-- 插入订单数据

INSERT INTO Orders(CustomerID, OrderPlaced, OrderCompleted, TotalAmount)

VALUES (101, '2024-05-01 14:30:00', '2024-05-01 15:45:00', 250.99), -- 处理时长1小时15分钟

       (102, '2024-05-02 09:00:00', '2024-05-02 10:00:00', 120.50), -- 处理时长1小时

       (103, '2024-05-03 16:30:00', NULL, 85.75), -- 未完成订单,处理时长未知

       (104, '2024-05-04 10:15:00', '2024-05-04 11:00:00', 175.00); -- 处理时长45分钟

这些插入语句为不同的客户创建了订单记录,其中包含了订单的放置时间、完成时间(有的订单可能还未完成,所以OrderCompleted为NULL),以及订单的总金额。通过前面提供的查询语句,我们可以计算出已完成订单的处理时长(以分钟为单位)。请注意,最后一个订单的OrderCompleted字段是NULL,这意味着该订单尚未完成,所以在执行原始的查询时,它应被排除在外。

查询语句:

select *from Orders where OrderCompleted  is not NULL;

最后结果应是:

作业4:

计算员工工龄

假设我们有一个公司员工信息表Employees,其中包含员工的入职日期(HireDate)。我们想要查询每位员工的工龄(以年为单位)。

建表语句

CREATE TABLE Employees (

    EmployeeID INT PRIMARY KEY IDENTITY(1,1),

    FirstName NVARCHAR(50) NOT NULL,

    LastName NVARCHAR(50) NOT NULL,

    HireDate DATE NOT NULL

);

这个表格定义了EmployeeID(员工ID,主键自动增长)、FirstName(名)、LastName(姓)和HireDate(入职日期)字段。

数据插入语句

INSERT INTO Employees(FirstName, LastName, HireDate)

VALUES ('John', 'Doe', '2020-01-01'), -- 入职于2020年

       ('Jane', 'Smith', '2019-07-15'), -- 入职于2019年

       ('Alice', 'Johnson', '2023-03-20'); -- 入职于2023年

这里插入了三个员工的记录,每个员工的入职日期不同。

查询语句

现在,我们要计算每个员工截止到当前时间的工龄,

查询语句:

select *,datediff(year,HireDate,getdate())as 工龄年数 from Employees;

最后结果应是:

相关文章:

sql server 练习题5

课后作业 在homework库下执行 作业1&#xff1a; 案例&#xff1a;根据用户分数划分等级。小于60分为不及格&#xff0c;[60,80)为及格&#xff0c;[80,90)为良好&#xff0c;大于等于90分以上为优秀。 建表语句&#xff1a; CREATE TABLE Grades ( ID INT PRIMARY KEY, Name V…...

ai伪原创生成器app,一键伪原创文章效率高

如今&#xff0c;在自媒体创作的领域&#xff0c;ai伪原创生成器app的出现&#xff0c;给写作带来了一种全新的方式和效率。ai伪原创生成器app通过使用先进的自然语言处理技术和深度学习算法&#xff0c;能够将原始文章进行重组和改写&#xff0c;生成新的文章&#xff0c;从而…...

【ZhangQian AI模型部署】目标检测、SAM、3D目标检测、旋转目标检测、人脸检测、检测分割、关键点、分割、深度估计、车牌识别、车道线识别

在模型部署落地&#xff08;主要部署到rk3588&#xff09;折腾了这么多年&#xff0c;把这些年折腾过的模型整理了一下&#xff0c;所有的流程说明、代码模型都完全开放的&#xff0c;欢迎交流学习。有的是为了项目、有的是为了学习、还有的是为了找点事做、有的完全是为了安抚…...

DROO论文笔记

推荐文章DROO源码及论文学习 读论文《Deep Reinforcement Learning for Online Computation Offloading in Wireless Powered Mobile-Edge Computing Networks》的笔记 论文地址&#xff1a;用于无线移动边缘计算网络在线计算卸载的深度强化学习 论文代码地址&#xff1a;DR…...

修BUG:程序包javax.servlet.http不存在

貌似昨晚上并没有成功在tomcat上面运行&#xff0c;而是直接运行了网页。 不知道为啥又报错这个。。。 解决方案&#xff1a; https://developer.baidu.com/article/details/2768022 就整了这一步就行了 而且我本地就有这个tomcat就是加进去了。 所以说啊&#xff0c;是不是&a…...

python常用库

目录 from sklearn import metrics:评估 ​编辑 svm&#xff1a; ​编辑 逻辑回归预测 ​编辑 朴素贝叶斯分类 ​编辑 主成分分析 ​编辑 其实就是求b.T的协方差阵 ​编辑 【因子分析&#xff0c;因子旋转有点复杂&#xff0c;略】 【层次聚类&#xff0c;原理…...

【UE5.3】笔记11

一、变量的SET&&GET 1、创建变量保存数据&#xff0c;如下图&#xff0c;找到左侧我的蓝图下的变量&#xff0c;新增一个&#xff0c;并选择类型。使用的时候直接将变量拖到蓝图中&#xff0c;此时会显示两个选项一个是获取一个是设置。 选择获取就是个GET蓝图&#x…...

加密与安全 密钥体系的三个核心目标之完整性解决方案

在密钥体系中&#xff0c;确保数据完整性是重要目标之一。以下为您详细讲解相关的完整性解决方案&#xff1a; 消息认证码&#xff08;MAC&#xff09;&#xff1a; 消息认证码是基于共享密钥和特定算法生成的固定长度代码。在发送方&#xff0c;将消息和共享密钥作为输入&…...

FastAPI 学习之路(四十一)定制返回Response

接口中返回xml格式内容 from fastapi import FastAPI, Responseapp FastAPI()# ① xml app.get("/legacy") def get_legacy_data():data """<?xml version"1.0"?><shampoo><Header>Apply shampoo here.</Header&…...

C++ //练习 15.9 在什么情况下表达式的静态类型可能与动态类型不同?请给出三个静态类型与动态类型不同的例子。

C Primer&#xff08;第5版&#xff09; 练习 15.9 练习 15.9 在什么情况下表达式的静态类型可能与动态类型不同&#xff1f;请给出三个静态类型与动态类型不同的例子。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释 当print_t…...

斐波那契查找算法

斐波那契查找原理&#xff0c;仅仅改变了中间结点(mid)的位置&#xff0c;mid不再是中间或插值得到,而是位于黄金分割点附近&#xff0c;即midlowF(k-1)-1(F代表斐波那契数列) F[k]F[k-1]F[k-2],>(F[k]-1) (F[k-1]-1)(F[k-2]-1)1 说明:只要顺序表的长度为F[k]-1,则可以将该…...

CAN总线学习

can主要用于汽车、航空等控制行业&#xff0c;是一种串行异步通信方式&#xff0c;因为其相较于其他通信方式抗干扰能力更强&#xff0c;更加稳定。原因在于CAN不像其他通信方式那样&#xff0c;以高电平代表1&#xff0c;以低电平代表0&#xff0c;而是通过电压差来表示逻辑10…...

zookeeper基础知识学习

官网&#xff1a;Apache ZooKeeper 下载地址&#xff1a;Index of /dist/zookeeper/zookeeper-3.5.7Index of /dist/zookeeperIndex of /dist/zookeeper/zookeeper-3.5.7 ZK配置参数说明&#xff1a; 1、tickTime2000&#xff1a;通讯心跳时间&#xff0c;zookeeper服务器与客…...

C语言内存管理深度解析面试题及参考答案(2万字长文)

在嵌入式面试时,C语言内存管理是必问面试题,也是难点,相关知识点可以参考: C语言内存管理深度解析​​​​​​​ 下面整理了各种类型的C语言内存管理的面试题: 目录 全局变量和局部变量在内存中分别存储在哪个区域? 静态变量和全局变量有什么区别? 什么是作用域?…...

C++基础(二)

目录 1.类和对象 1.1类的定义 1.2访问限定符 1.3类域 2.实例化 2.1实例化概念 2.2对象大小 3.this指针 4.类的默认成员函数 4.1构造函数 4.2析构函数 4.5运算符重载 1.类和对象 1.1类的定义 类的定义格式 class为定义类的关键字&#xff0c;Stack为类的名字&…...

R 绘图 - 中文支持

R 绘图 - 中文支持 R 是一种广泛使用的统计和数据分析编程语言&#xff0c;它提供了强大的绘图功能。然而&#xff0c;R 的默认设置并不直接支持中文&#xff0c;这可能会在使用 R 进行绘图时造成困扰&#xff0c;尤其是当需要在图表中添加中文标签或标题时。本文将介绍如何在…...

使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-标题菜单及游戏结束界面(九)

文章目录 开发思路标题菜单界面标题菜单脚本代码结束菜单界面结束菜单脚本代码 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击&#xff08;一&#xff09; 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件&#xff08;二&#xff09; 使用Godot4组件制作竖版…...

[终端安全]-6 移动终端之应用程序安全

笔者在终端安全专题前面的文章中介绍了移动终端硬件安全和操作系统安全&#xff0c;本文主要介绍移动终端应用安全。在本文最前面&#xff0c;笔者想先解答一位朋友的疑问&#xff0c;为什么需要费心打造一个完整的面面俱到的安全体系&#xff1f; 1 移动终端安全的重要性 移…...

基于望获实时Linux的高性能运动控制器适配

在快速迭代的工业自动化与机器人控制领域&#xff0c;高性能运动控制器无疑是实现极致精度与效率的核心引擎。实时操作系统&#xff08;Real-Time Operating System,RTOS&#xff09;凭借其低延迟与高度确定性的特性&#xff0c;成为这些高精度、高速度应用的首选平台。 望获…...

电气工程VR虚拟仿真实训平台以趣味化方式增强吸引力

在工业4.0时代和教育信息化的双重推动下&#xff0c;我们致力于推动实训课件的跨界合作与共创。VR实训课件不仅促进了不同领域、不同行业之间的紧密合作&#xff0c;更让学习变得生动直观。我们凭借3D技术生动、直观、形象的特点&#xff0c;开发了大量配套3D教材&#xff0c;让…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...