一张表通常包含很多字段,导致数据冗余。 在做数据分析的时候,我们只需要提取出数据分析所需的字段即可。 这里我们就需要用到数据选择的知识点,我们也可以根据具体条件进行筛选。
本文介绍了数据提取、数据过滤、条件聚合操作等,数据过滤后类比EXCEL进行条件计数、条件求和等操作。 它与sumif函数功能类似。 我们一起来学习吧。
示例工具:.0、12
本文介绍的内容:SQL 简单查询和高级查询
适用范围:SQL中的条件聚合操作
数据提取
要按列提取数据,请使用函数提取相应的字段名称。
#按列提取
SELECT cname
FROM course;
按行提取需要按行添加特定的过滤条件。
#按行提取
SELECT * FROM course
WHERE cname='数学';
按位置提取数据。 这里使用LIMIT来限制数据的大小。 “LIMIT 3,4”的含义是从第3行开始过滤4行数据。
#按位置提取
SELECT * FROM student
LIMIT 3,4;
根据条件提取数据。 提取数据后,需要根据一定的条件对数据进行过滤。 这里使用WHERE函数并设置后面的条件即可完成过滤。
#按条件提取并计算
SELECT * FROM score
WHERE cid=02 AND score>80;
逻辑过滤
常用的逻辑条件包括 AND、OR 和 NOT。 这里使用了 AND 函数。 过滤条件为课程号为03,分数大于80分。
#数据筛选AND
SELECT * FROM score
WHERE cid=03 AND score>80;
这里使用OR函数来过滤学号为01或者分数大于98的数据。
#数据筛选OR
SELECT * FROM score
WHERE sid=01 OR score>98;
添加不等式条件,过滤性别非“女”的数据。 不等号用“!=”表示。
#数据筛选(不等于)
SELECT * FROM student
WHERE ssex != '女';
使用IN函数可以将条件值限制为特定值,从而达到过滤确定值的目的。
#数据筛选IN
SELECT * FROM score
WHERE score IN (90,99);
使用 LIKE 模糊过滤。 % 是一个通配符,用于替换一个或多个字符。 这里的条件可以过滤姓李的学生。
#数据筛选like(模糊筛选)
SELECT * FROM student
WHERE sname LIKE '李%';
条件聚合操作
条件过滤后的计数与EXCEL中的功能类似。 这里将课程编号为03且分数大于60分的课程过滤掉然后统计。
#筛选后计数
SELECT COUNT(cid) AS cid_count
FROM score
WHERE cid=03 AND score>60;
过滤后求和,类似于EXCEL中的功能。
#筛选后求和
SELECT SUM(score) AS sum_score
FROM score
WHERE sid=01 AND cid=01 AND score>60;
同样,您可以设置条件并求条件平均值。
#筛选后求均值 averageif
SELECT AVG(score) AS avg_score
FROM score
WHERE cid != 01;
业务数据分析系列文章持续更新中~