SQL习题汇总

news/发布时间2024/8/25 17:18:29

1、【问题】导入数据后时间列显示的都是0000

【解决】导入数据时时间列选择的数据类型是时间类型导致的,正确方法是:

1)导入数据时,此列数据类型选varchar

2)导入数据后,再使用SQL语句修改时间戳这一列为日期

2、时间戳处理

(1)获取当前时间戳
current_timestamp, current_timestamp()select current_timestamp, current_timestamp();
(2)时间戳和日期转换
unix_timestamp(), unix_timestamp(date)——将日期时间转化为时间戳from_unixtime(unix_timestamp), from_unixtime(unix_timestamp, format)——将时间戳转化为日期时间

1)从时间戳中抽取日期

#增加一列用于存放日期
alter tabel 表名 add 列名1 varchar(255);
#从时间戳抽取日期
update 表名
set 列名1=from_unixtime(时间戳列的列名,'%Y-%m-%d');

2)从时间戳中抽取时间

#增加一列用于存放时间
alter tabel 表名 add 列名2 varchar(255);
#从时间戳抽取日期
update 表名
set 列名2=from_unixtime(时间戳列的列名,'%h:%i:%s');

3)将日期转化为时间戳

#增加一列用于存放日期时间戳
alter tabel 表名 add 列名1 varchar(255);
#将日期转化为时间戳
update 表名
set 列名1=unix_timestamp(日期列的列名);

4)将时间转化为时间戳

#增加一列用于存放时间戳
alter tabel 表名 add 列名1 varchar(255);
#将时间转化为时间戳
update 表名
set 列名1=unix_timestamp(时间列的列名);
(3)时间戳增减函数
timestamp(date)——date to timestamptimestamp(dt, time)——dt + timetimestampadd(unit, interval, datetime_expr)timestampdiff(unit, datetime_expr1, datetime_expr2)

timestampdiff()函数类似于date_add()

3、数据处理相关问题

(1)删除缺失值delete from 表名 where 列名 is null;
(2)填充缺失值select coalesce(列名, 要填充的值) from 表名;
(3)删除重复值-- 第一步:创建临时表,用于存放要删除的重复值
create table 临时表名 as select 有重复值的列名 as 列名 from 原表;
-- 第二步:删除重复值
delete from 原表 where 有重复值的列名 in
(select 列名 from 临时表名 order by 列名 having count(列名)>1)
and id not in (select min(id) from 临时表名 order by 列名 having count(列名)>1);
-- 第三步:删除临时表
drop table 临时表名;

4、视图和表的区别和联系

【区别】

1)视图是已经编译好的SQL语句,而表不是;

2)视图不占用物理空间,而表占用,因为视图只是逻辑概念的存在;

3)视图是窗口,表是内容;

4)视图没有实际的物理记录,而表有;

5)视图是外模式,表是内模式;

6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合;

7)视图属于局部模式的表,是虚表,而表是全局模式的表,是实表;

8)视图的建立和删除只影响视图本身,不影响对应的基本表。

【联系】

视图是在基本表之上建立的表,结构(即所定义的列)和内容(即所有的数据行)都来自基本表,它依据基本表的存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

5、有两张表employees和departments

employees表(employee_id, first_name, department_id, salary)

departments表(department_id, department_name, manager_id, location_id)

1)写出SQL得出每个部门的平均工资

select b.department_name, avg(a.salary) 
from employees as a right join departments as b
on a.department_id=b.department_id
group by b.department_name;

2)查询量表得出每个部门的最高工资

select a.first_name, max(a.salary), b.department_name 
from employees as a right join departments as b
on a.department_id=b.department_id
group by b.department_name;

6、数据表(tb)的基本字段:日期,订单

要求用SQL实现周次、订单总和、日均订单、极大值订单、极小值订单

select count(distinct date)/7 as 周次, count(order) as 订单总和,
count(order)/count(distinct date) as 日均订单, max(order) as 极大值订单, min(order) as 极小值订单
from tb;

7、行列转换,并统计总分和平均分

原表table(姓名,科目,分数)

要求新表为(姓名,语文,数学,外语,总分,平均分)

select 姓名,
max(case 科目 when '语文' then 分数 else 0 end) as '语文',
max(case 科目 when '数学' then 分数 else 0 end) as '数学',
max(case 科目 when '外语' then 分数 else 0 end) as '外语',
sum(分数), avg(分数)
from table
group by 姓名;

8、分月度销售统计

原表deptsales(deptid, subjmonth, sales, deptname)

意为:部门id,月份,销售额,部门名称

要求新表为(部门, 一月销售额,二月销售额,三月销售额,四月销售额)

select deptid as '部门',
sum(case subjmonth when 1 then sales else 0 end) as '一月销售额',
sum(case subjmonth when 2 then sales else 0 end) as '二月销售额',
sum(case subjmonth when 3 then sales else 0 end) as '三月销售额',
sum(case subjmonth when 4 then sales else 0 end) as '四月销售额'
from deptsales as a
group by deptid;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.liansuoyi.cn/news/44437308.html

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Educational Codeforces Round 162 (Rated for Div. 2)

Educational Codeforces Round 162 (Rated for Div. 2) A - Moving Chips 解题思路: 模拟一下,不难发现是\(1\)之间\(0\)的个数。 代码: #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<ll, ll>; #define fi first #defi…

在vue项目中给element-ui的菜单添加跳转

一、在el-menu加上router,添加el-menu的default-active属性,加:动态绑定,值设置为"this.$router.path" , 如图二、在下面的具体的item的index中写入所要跳转的页面的路径 如图 即可实现界面的跳转

html

图片+跳转 <!DOCTYPE html> <html> <head><meta charset="utf-8"><title>我的小米</title> </head> <body><h1>红米K70</h1><img src="/static/mi.jpg" style="width: 800px;"&…

vulnhub-wp DC:9

DC-9 是另一个专门建造的易受攻击的实验室,旨在获得渗透测试领域的经验。这个挑战的最终目标是扎根并阅读唯一的标志。Linux 技能和对 Linux 命令行的熟悉是必须的,基本渗透测试工具的一些经验也是必须的。🖳 主机发现Currently scanning: Finished! | Screen View: Un…

MVVM模式

1.原理 基于数据绑定和命令模式实现:数据绑定:视图和视图模型之间通过数据绑定来实现交互。当视图模型中的数据发生变化时,视图会自动更新相应的内容,从而实现了视图和视图模型之间的数据同步。 命令模式:视图和视图模型之间通过命令模式来实现交互。视图中的用户交互事件…

2-12. 三段攻击动画的实现

创建动画片段修改动画状态机增加 Attack Layer,把刚才制作好的动画片段加进去再增加两个变量,bool 类型的 isAttack 和 trigger 类型的 attack New State -> blueAttack1,isAttack = true 并且 attack 触发 blueAttack1 -> blueAttack2,isAttack = true 并且 attack …

推出新款H7-TOOL 2024版,同时发布新版固件V2.25(2024-02-24)

H7-TOOL 2024版介绍 1、开模定制外壳,取消了侧面的IO接口,汇集到一个主端口(2 * 17P排针)。 2、显示屏升级为2.8寸(分辨率320*240)。 3、两个按键升级为4个按键:上键、下键,OK确认键和C取消键。 4、预留一个电源开关按键,目前功能为HOME(返回初始界面)。 5、新增4-20…

【libGDX】Mesh纹理贴图

1 前言 ​ 纹理贴图的本质是将图片的纹理坐标与模型的顶点坐标建立一一映射关系。纹理坐标的 x、y 轴正方向分别朝右和朝下,如下。2 纹理贴图 ​ 本节将使用 Mesh、ShaderProgram、Shader 实现纹理贴图,OpenGL ES 的实现见博客 → 纹理贴图,本节完整代码资源见 → lib…

win10系统中环境变量path变成一行显示

1.问题 编辑系统环境变量发现只显示出了一行,而不是以前的一个列表,看起来十分麻烦2.解决 参考:win10系统中环境变量path变成一行显示 要把这个放在最前面. C:\Windows\System32;

pytest简易教程(34):pytest常用插件 - 测试报告(pytest-html)

pytest简易教程汇总,详见:https://www.cnblogs.com/uncleyong/p/17982846 关于pytest-html 通过命令行方式,生成xml/html格式的测试报告,存储于用户指定路径 报告会覆盖上一次的插件安装 pip install pytest-html 使用方式 命令行格式:pytest --html=./report/report.htm…

SpringBoot + Redis 的配置及使用

一、SpringBoot 配置Redis1.1 pom 引入spring-boot-starter-data-redis 包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 1.2 properties配置文件配…

陪玩app开发,实现一个爱心按钮的代码解析

陪玩app开发,实现一个爱心按钮的代码解析❤️ 爱心按钮制作一个爱心的方式有很多,可以用图标库的爱心,可以写一个svg,可以用图片,我这里就用伪元素的方式做一个爱心。<!-- fullLove.html --> <div class="likeBtn" id="likeBtn"><span…

读人工不智能:计算机如何误解世界笔记01_技术沙文主义

技术沙文主义1. 人工智能的学术范畴 1.1. 知识表示与知识推理 1.2. 逻辑学 1.3. 机器学习 1.4. 自然语言处理 1.5. 搜索 1.6. 规划 1.7. 力学 1.8. 伦理学 2. 广义人工智能 2.1. GOFAI 2.1.1. Good Old-Fashioned Artificial Intelligence,老式人工智能 2.2. 好莱坞版本的人工…

汽车ADAS的现状与未来

汽车ADAS的现状与未来 3.3.1. ADAS分级 通过传感、先进计算和存储技术实现汽车ADAS的现状和未来。 https://medias.yolegroup.com/uploads/2023/03/analyst-thursday-march-30-automotive-adas.pdf图3-15表示自动驾驶等级分类,包括level1,level2,level3,level4,level5五个…

2-5. 物理环境监测及绘制

物理环境监测代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class PhysicsCheck : MonoBehaviour {[Header("监测参数")]public Vector2 bottomOffset;public float checkRaduis;public LayerMask groundLayer;[Heade…

循环掌控:深入理解C语言循环结构,高效实现重复性任务

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog引言 前面贝蒂带大家了解了选择结构,今天就来为大家介绍循环结构,也就是我们熟悉的while,do while,还有for的用法。只要给定的条件为真,C 语言中…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的快递包裹检测系统(Python+PySide6界面+训练代码)

本文介绍了一种基于深度学习的快递包裹检系统系统的代码,采用最先进的YOLOv8算法并对比YOLOv7、YOLOv6、YOLOv5等算法的结果,能够准确识别图像、视频、实时视频流以及批量文件中的快递包裹。文章详细解释了YOLOv8算法的原理,并提供了相应的Python实现代码、训练数据集,以及…

云打印app下载,云打印app在哪下载?

随着互联网技术的发展,云打印技术已经逐渐成熟。而对于用户来说,很多有打印需求的用户都需要用到云打印,那么云打印App怎么下载,云打印app在哪下载呢?今天带大家来了解一下。 云打印app在哪下载? 很多有打印需求的用户都需要用到云打印,现在很多平台都支持云打印功能,那…

读论文-基于序列模式的电子商务推荐系统综述(A Survey of Sequential Pattern Based E-Commerce Recommendation Systems)

前言 今天读的论文为一篇于2023年10月3日发表在《算法》(Algorithms)的论文,这篇文章综述了基于序列模式的电子商务推荐系统,强调了通过整合用户购买和点击行为的序列模式来提高推荐准确性、减少数据稀疏性、增加推荐新颖性,并改善推荐系统的可扩展性。文章详细分析了现有推…
推荐文章