Open mind1949 opened 5 years ago
having 与 where 的区别是什么? 什么时候用having? 什么时候用where?
group by 是分组,但是跟具体来说它做了什么? 如果不能像理解select/where/inner join/_ outer join那样理解一个sql语句执行过程中group by在什么顺序执行了什么操作,就不能清晰地理解.清晰的使用
having 与 where 的区别是什么? 什么时候用having? 什么时候用where?
Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。 Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。 在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在查询过程中执行优先级高于聚合语句。
group by 是分组,但是跟具体来说它做了什么? 如果不能像理解select/where/inner join/_ outer join那样理解一个sql语句执行过程中group by在什么顺序执行了什么操作,就不能清晰地理解.清晰的使用
group by就是将一个数据集划分为若干个小区域, 然后对若干个小区域进行数据处理; select中出现的字段必须要么是在group by中作为分组的依据,要么被包含在聚集函数内部
sql执行顺序是什么? 不了解这个那么在写一个sql语句时,就不能有一个清晰的逻辑. 就不能理解为什么having能够执行聚集函数而where不行,不能理解为什么若有group by的话,为什么select中的列必须是group by指定的,或者是在聚集函数中的
sql执行顺序是什么? 不了解这个那么在写一个sql语句时,就不能有一个清晰的逻辑. 就不能理解为什么having能够执行聚集函数而where不行,不能理解为什么若有group by的话,为什么select中的列必须是group by指定的,或者是在聚集函数中的
SQL SELECT语句的执行顺序:
from子句组装来自不同数据源的数据;
where子句基于指定的条件对记录行进行筛选;
group by子句将数据划分为多个分组;
使用聚集函数进行计算;
使用having子句筛选分组;
计算所有的表达式;
使用order by对结果集进行排序;
select 集合输出。
group by的 rollup 与cube和grouping set是什么?有什么作用?
什么是窗口函数?
概念的理解一定要清晰,不能大而化之
什么是窗口函数?
概念的理解一定要清晰,不能大而化之
聚合函数的作用于由 GROUP BY 子句聚合的组,而窗口函数则作用于一个窗口, 这里,窗口是由一个 OVER 子句 定义的多行记录. 聚合函数也可以配合over子句作为窗口函数使用
第四章练习题完成!
加油!
Intro
Q1: count the number of facilities
Q2: count the number of enpensive faciliteis
Q3: Count the number of recommendations each member makes.
Q4: list the total slots booked per facility
Q5: list the total slots booked per facility in a given month
Q6: list total slots booked per facility per month
解析
Q7: find the count of members who have made at least one booking
Q8: lists facilities with more than 1000 slots booked
解析 这里使用having而不能使用where是因为:
Q9: find the total revenue of each facility
sql语句的执行顺序
Q10: find a facility with total revenue less than 1000
Q11: outpu the facility with the hieghtest number of slots booked
Q12: List the total slots booked per facility per month, part 2
Q13: list the total hours booked per named facility
Q14: list each member's first booking after septmember 1st 2012
Q15: produce a list of member name, with each row containing the total member count
Q16: produce a numberd list of members
解析
Q17: output the facility id that has highest number of slots booked
Q18: rank members by hours(rounded) used
Q19: find the top three revenue generating facilities
Q20: classify facilities by value
解析
Q21: calculate the payback for time each facility
Q22: calculate a rolling average of total revenue