SQL小结一

#数据表的查询框架: select [all | distinct] select_list from tb_name [where 查询条件] [group by <group_by_expression>] [having <查询条件>] order by <排序表达式> [asc|desc] limit [<offset>,<row count>]
#关键字的用法: select 指定有查询返回的列 from 用于指定引用的列所在的表和视图 where 指定用于限制返回行的搜索条件 group by 用于根据字段对行分组 having 指定分组或聚合的搜索条件 order by 指定的结果集的排序 limit 该子句显示查询出来的数据条数 说明: 所有关键词的使用必须精确地以上面的顺序给出。如,一个having子句必须跟在group by 子句的后面和order by子句之前。  

---------------------------------------------------------------------------------------------------------------------------------------

 

#group by 的使用:一般情况下,若查询的需求中有'每'或'各'这个意思就可以用'group by',另外,值得注意的是查询什么 就按什么分组,目的是时查询到的数据没有矛盾。
eg:统计各个部门的人数
select deptcode,count(*)
from tb_user
group by deptcode;

 

 

#having条件表达式:用于设置分组或聚合函数的过滤筛选条件的,having子句通常与group by 子句一起使用,用于指定分组后 的筛选条件。
eg:统计各用户发布的新闻条数,要求发布数量大于2。
select inputer,count(*)
from tb_news
group by inputer; --不加筛选


select inputer,count(*)
from tb_news
group by inputer
having count(*)>2; --加上筛选,比较执行结果,确认代码的正确性

 

 

#limit子句:返回前几条或者中间某几行数据
eg1:
--查找新闻表最靠前的三条新闻的标题和时间
select title as '标题',time as "发布日期"
from tb_news
order by time asc --这里asc表示升序,在这里可以自动省略,因为是默认的
limit 3;

eg2:
--查找新闻表中从第三条记录开始的3条记录的标题和时间
select title as '标题','time' as '发布日期'
from tb_news
order by time
limit 2,3;

 

#distinct :关键字去除结果中的重复行
select distinct s_id from fruits;

 

#集合函数:要对表中数据进行统计,都需要使用集合函数。集合函数一般是返回某列的值。

 

说明:函数的最大特点是经常和 group by 语句配合使用,注意的是集合函数不能和 和非分组的列混合使用。  






上一篇:SQL查询语句(where、jion、limit、group by、having等等)执行先后顺序


下一篇:Hive sql