10个必须掌握的SQL常用语句

news2024/11/24 23:06:49

世界上70%的相关性数据可以被储存为表格数据,即类似ExcelCsv类型的数据,如何去查询和分析相关性的数据?对于少量数据,我们可以使用Excel,更多一点数据,我们可以使用Python, pandas 处理大数据 ;那么亿万条数据,我们此时就需要借助 SQL,那么掌握常用的 SQL 需要对处理大型数据非常必要。

下面我将介绍10SQL中常用的分析技巧,供大家学习参考。

1 SELECT all columns with LIMIT

一般,我们需要了解数据的大概,那么我们一般会选择前5行进行打印,看看具体内容包括哪些!SELECT 命令会选择所有的行、列,全部进行打印时,浪费时间、电脑内存,Limit命令可以查看数据中的前几行。

SELECT * FROM Customers LIMIT 3;

 Limit在MySQL这种可以正常工作,在其他的SQL中可能需要使用TOP, FETCH FIRST ROWS ONLY

2 WHERE clause

WHERE可以对特定列的值进行过滤。例如,我们过滤来自西班牙的国家,并且返回对应的城市。

SELECT City 

FROM Customers

WHERE Country = "Spain";

 我们也可以对城市进行 Unique

SELECT DISTINCT City 

FROM Customers

WHERE Country = "Spain";

 3 GROUP BY and HAVING clause

当我们想要对数据中相同观测值进行分组时,我们可以使用 GROUP BY, HAVING 可以用来过滤加总的数据,常用的包括 sumcount

HAVING 用来处理加总数据,而WHERE用来处理非加总数据。

我们有世界各国的数据,想要输出人口大于500,000,000的洲:

SELECT continent, SUM(population)

FROM world

GROUP BY continent

HAVING SUM(population)>500000000.  --filter the aggregated values

 

4 Order By clause

Order By 将数据按照选择的列进行升序或者排列:

将选择的数据按照人口降序排列:

SELECT name, population

FROM world

WHERE population > 200000000

ORDER BY population DESC;

 

5 Date Function

时间处理函数依赖于SQL的内核,不同SQL的时间处理函数有所差异,DATEPART 可以提取时间中的年月日。

提取时间中的年、月:

SELECT whn,

DATEPART(YEAR, whn) AS yr,

DATEPART(MONTH, whn) AS mnth

FROM eclipse

 

6 Joins

Joins 包括笛卡尔积、内积、外积、Self Join,接下来我们将介绍 Innerleft join right join

 

inner

inner 可以输出两个表或者更多表中共同的行,类似数学中的韦恩图,取两个集合的交集。

当我们取两个集合共同id, 并且仅仅输出前五行:

SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

INNER JOIN Customers

ON Orders.CustomerID = Customers.CustomerID

LIMIT 5; 

 

 

left join

left join 仅仅输出左边表中的所有行,输出结果中右边表不存在的值为Null

左连表, 按照 Customers.CustomerName进行升序排列:

SELECT Customers.CustomerName, Orders.OrderID

FROM Customers

LEFT JOIN Orders

ON Customers.CustomerID=Orders.CustomerID

ORDER BY Customers.CustomerName

LIMIT 5;

 

 right join

右连表与左连表相反,返回右表中的所有行,左表不存在的行将填充Null值。

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName

FROM Orders

RIGHT JOIN Employees

ON Orders.EmployeeID = Employees.EmployeeID

ORDER BY Orders.OrderID; 

 

7 Case When clause

Case When 可以让我们根据现有的数据生成一些新的列,类似于PythonExce中的if-else语法。

例如,基于国家人口数据,生成新列population_bucket:

SELECT name, population

      ,CASE WHEN population<1000000 THEN 'small'

            WHEN population<10000000 THEN 'medium'

            ELSE 'large'         --ELSE is executed if no condition is satisfied

      END as population_bucket   --name of the new column

FROM world

 Remark: 没有else时,对应的输出将为 Null

8 Subqueries

子查询在SQL中尤为重要,一旦我们领悟,我们将读懂更为复杂的SQL语句。

例如,输出人口大于俄罗斯的国家的名字:

SELECT name FROM world

WHERE population >

(SELECT population FROM world

WHERE name='Russia')

9 Window function

窗口函数包括以下三种:

加总函数(Aggregate functions):SUM, AVG, MAX, MIN

排序函数(Ranking functions):RANK, ROW_NUMBER

分析函数(Analytic functions):LEAD, LED

另外,我们可以使用Over 语句去定义这些窗口函数,Over 语句和 PARTITION BY 常常联合使用。

例如,对每年每个党派的投票按照降序排列:

SELECT yr,party, votes,

RANK() OVER (PARTITION BY yr ORDER BY votes DESC) as posn

FROM ge

WHERE constituency = 'S14000021'

ORDER BY party,yr

 

10 Union

Union 常常用来竖直方向组合多个数据集,输入的数据应该具有以下两个特征:

列的的名字和数量是形同的

每列的数据类型是相同的

SELECT DISTINCT City

FROM 

(SELECT City FROM Customers

UNION

SELECT City FROM Suppliers)

LIMIT 5;

例如,组合消费者和供应者所在的城市:

 

                                                                  END

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

区块链学习一(FISCO BCOS部署控制台部署第一个HelloWorld)

系统环境&#xff1a;CentOS Linux release 7.6.1810 fisco版本&#xff1a;3.3.0 jdk版本&#xff1a;1.8 第一步 安装依赖 sudo yum install -y curl openssl openssl-devel wget第二步 创建操作目录 mkdir fiscocd fisco第三步 下载安装脚本 curl -LO https://github.co…

chatGPT推荐2个key免费使用

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 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同时推荐一下一个国内比较稳定的代理 #查询余额 curl https://api.openai-proxy.com/pro/balance?apiKeysk-XXX | jqPython代码也可以查询 import requests impor…

生成对抗网络CycleGAN

1.介绍 论文&#xff1a;Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 论文地址&#xff1a;https://arxiv.org/abs/1703.10593 什么是CycleGAN&#xff1a;CycleGAN主要用于图像之间的转换&#xff0c;假设有两个不成对的图像X和Y&am…

c++11 标准模板(STL)(std::priority_queue)(三)

适配一个容器以提供优先级队列 std::priority_queue 定义于头文件 <queue> template< class T, class Container std::vector<T>, class Compare std::less<typename Container::value_type> > class priority_queue; priority_queu…

chatgpt接入ROS2控制小海龟

chatgpt接入ROS2控制小海龟 0.前言一、使用功能测试&#xff1a; 二、运行结果三、总结 0.前言 在小破站看到的案例&#xff0c;感觉很有趣就自己尝试复现了一下。需要一个OpenAI API Key、ubuntu以及安装ROS2环境。 一、使用 代码仓库在这里&#xff0c;示例操作可以参考B站视…

DATAX hdfsreader orc格式读取数据丢失问题

最近做一个数据同步任务&#xff0c;从hive仓库同步数据到pg&#xff0c;Hive有4000w多条数据&#xff0c;但datax只同步了280w就结束了&#xff0c;也没有任何报错。 看了下datax源码&#xff0c;找到HdfsReader模块DFSUtil核心实现源码读取orc格式的文件方法&#xff1a; pu…

应用运行环境实时洞察,亚马逊云科技Cisco AppDynamics展优势

Cisco AppDynamics(APM)产品&#xff0c;现已正式上线亚马逊云科技Marketplace&#xff08;中国区域&#xff09;。可以通过亚马逊云科技Marketplace&#xff08;中国区域&#xff09;网站&#xff0c;灵活便捷地部署该解决方案&#xff0c;以便充分利用云原生APM(应用性能管理…

(上)苹果有开源,但又怎样呢?

苹果&#xff08;Apple Inc.&#xff09;有多伟大&#xff0c;我相信已经无需赘述了。但是&#xff0c;这里的伟大是指用产品和理念对行业进行的革命性颠覆&#xff0c;而不是对开源而言。 相反&#xff0c;在某种程度上&#xff0c;苹果几乎就是开源的反义词。这种骨子里的 “…

8个Wireshark使用技巧

一&#xff1a;数据包过滤 过滤需要的IP地址 ip.addr 在数据包过滤的基础上过滤协议ip.addrxxx.xxx.xxx.xxx and tcp 过滤端口ip.addrxxx.xxx.xxx.xxx and http and tcp.port80 指定源地址 目的地址ip.srcxxx.xxx.xxx.xxx and ip.dstxxx.xxx.xxx.xxx SEQ字段&#xff08;序列号…

浅谈 git 底层工作原理

浅谈 git 底层工作原理 系统复习到这里也快差不多了&#xff0c;大概就剩下两三个 sections&#xff0c;这里学习一下 git 的 hashing 和对象。 当然&#xff0c;跳过问题也不大。 config 文件 这里还是会用 redux 的项目&#xff0c;先看一下基本信息&#xff1a; ➜ re…

短视频矩阵系统---开发技术源码能力

短视频矩阵系统开发涉及到多个领域的技术&#xff0c;包括视频编解码技术、大数据处理技术、音视频传输技术、电子商务及支付技术等。因此&#xff0c;短视频矩阵系统开发人员需要具备扎实的计算机基础知识、出色的编程能力、熟练掌握多种开发工具和框架&#xff0c;并掌握音视…

制冷暖通工业互联网平台孵化

制冷暖通工业互联网平台孵化可以帮助初创企业或者创新项目快速建立和推广制冷暖通工业互联网平台。以下是一些常见的制冷暖通工业互联网平台孵化服务&#xff1a; 创业辅导&#xff1a;孵化器提供创业辅导服务&#xff0c;帮助企业或者项目找到合适的市场和商业模式&#xff0c…

sd卡中病毒的表现及sd文件消失后的恢复方法

sd卡在日常使用中十分常见&#xff0c;但有时也会发生一些意外情况。例如&#xff0c;不小心意外感染病毒&#xff0c;导致sd卡中存储的文件消失。那么对于丢失的文件&#xff0c;我们该如何恢复呢&#xff1f;下面将带您了解sd卡中病毒的表现以及sd卡文件消失怎么恢复的方法。…

【C语言】学习路线大纲思维导图

思维导图下载地址&#xff1a;点击跳转   配套专栏&#xff1a;【C语言】基础语法 思维导图 1. 基础语法1.1 变量和数据类型1.2 运算符和表达式1.3 控制流程结构1.4 函数和递归1.5 数组和指针1.6 字符串和字符处理1.7 文件操作 2. 高级特性标准库和常用函数动态内存分配多文件…

理解龙格库塔法基本C程序

先学习龙格-库塔法&#xff1b; 龙格-库塔&#xff0c;Runge-Kutta&#xff0c;该方法用于数值求解微分方程&#xff1b; 其中包括著名的欧拉法&#xff1b; 经典四阶法 该方法主要是在已知方程导数和初值信息&#xff0c;利用计算机仿真时应用&#xff0c;省去求解微分方…

【LeetCode】213. 打家劫舍 II

213. 打家劫舍 II&#xff08;中等&#xff09; 思路 这道题是 198.打家劫舍 的拓展版&#xff0c;区别在于&#xff1a;本题的房间是环形排列&#xff0c;而198.题中的房间是单排排列。 将房间环形排列&#xff0c;意味着第一间房间和最后一间房间不能同时盗窃&#xff0c;因…

虹科分享|不再受支持的Windows系统如何免受攻击?| 自动移动目标防御

传统的微软操作系统(OS)可能会一直伴随着我们&#xff0c;操作系统使用统计数据显示&#xff0c;传统操作系统的总市场份额仍在10%以上。Windows的总安装基数为13亿&#xff0c;大约有1.5亿个终端仍在运行旧版操作系统。 数十万组织的终端和服务器采用不受支持的操作系统。如果…

curl方式调用电商API接口示例 详细介绍

cURL是一个利用URL语法在命令行下工作的文件传输工具&#xff0c;1997年首次发行。它支持文件上传和下载&#xff0c;所以是综合传输工具&#xff0c;但按传统&#xff0c;习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。 cURL支持的通信协议有FTP、FTPS、HTTP、H…

数字化工厂:虹科Vuzix AR眼镜在工业制造中的革新应用

随着现代科学技术和新兴需求的快速增长&#xff0c;增强现实(AR)、各种“现实”产品与技术不断涌入创新市场&#xff0c;新兴用例数量正在快速增长&#xff0c;可以肯定&#xff0c;在可预见的未来&#xff0c;AR技术将成为各行各业的生产与工作主流。 增强现实&#xff08;AR&…

应用scrapy爬虫框架

Scrapy是一个基于Python的开源网络爬虫框架&#xff0c;它可以帮助我们快速、高效地抓取网页数据&#xff0c;并支持数据的自动化处理、存储和导出。Scrapy提供了丰富的扩展机制&#xff0c;可以轻松地实现各种自定义需求。 Scrapy的基本使用流程&#xff1a; 1、安装Scrapy框…