Java教程

初学日常记录 sql 三

本文主要是介绍初学日常记录 sql 三,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

表ssndata数据如下图所示,方便查询对比结果:

 sum()函数返回数值列的总数

select sum(age) from ssndata;

 COUNT() 函数返回匹配指定条件的行数

#COUNT(*) 统计所有的行数,包括为null的行

select count(*) from ssndata;

#count(column_name)查询列名那一列的,字段为null不统计  //count(列名)

select count(column_name) from table_name;  

select count(id) from ssndata;

#count(distinct column_name) //distinct去重

select count(distinct name) from ssndata;

 

 #count(1)计算一共有多少符合条件的行,不会忽略null值

select count(1) from ssndata;

#注意点:

a.少用count(*) count(column_name)可用
count(0)统计第一个表头字段的行数

 b.sum(age)数值求和                     count(*)行数相加

根据需求判断是数值求和还是说计算行数

        举例:统计年龄小于20的人数 //不能写出sum(age)

        

select count(age) from ssndata where age < 20;

 c.根据需求判断是否需要count(distinct column_name) 去重

#求各个名称的年龄和                               

select name,sum(age) from ssndata group by name;

group by 根据一个或多个列对结果集进行分组

 #求年龄小于25岁的各个名称的年龄和

    子查询:

select t.name,sum(t.age) from (
select * from ssndata where age < 25
) as t 
group by t.name ;

 

 

select name,sum(age) from ssndata where age <25 group by name;

      

 #求各个名称的年龄和大于25的

select name,sum(age) from ssndata group by name having sum(age)>25;

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

聚合函数(count()、sum()、avg()、max()、min() )

HAVING 子句可以让我们筛选分组后的各组数据。

 

select * from
(select name,sum(age) as sumage from ssndata group by name) as t
where t.sumage >25;

 #用户年龄从大到小进行排列

select * from duodata.ssndata order by age desc ;

order by用于对结果集进行排序

默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 desc 关键字

asc升序

 总结:

select yyy from ssndata

where  xxx

group by xxx having xxx

order by xxx

limit xxx ;

这篇关于初学日常记录 sql 三的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!