网站建设的主要内容包括,开发公司交房前期的各项准备工作,网站布局建议,带flash的网站1.group by与where 一#xff0c;group by 字句也和where条件语句结合在一起使用。当结合在一起时#xff0c;where在前#xff0c;group by 在后。 即先对select xx from xx的记录集合用where进行筛选#xff0c;然后再使用group by 对筛选后的结果进行分组 使用having字句…1.group by与where 一group by 字句也和where条件语句结合在一起使用。当结合在一起时where在前group by 在后。 即先对select xx from xx的记录集合用where进行筛选然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛选。 二需要注意having和where的用法区别 1.having只能用在group by之后对分组后的结果进行筛选(即使用having的前提条件是分组)。 2.where肯定在group by 之前。 3.where后的条件表达式里不允许使用聚合函数而having可以。 三当一个查询语句同时出现了where,group by,having,order by的时候执行顺序和编写顺序是 1.执行where xx对全表数据做筛选返回第1个结果集。 2.针对第1个结果集使用group by分组返回第2个结果集。 3.针对第2个结果集中的每1组数据执行select xx有几组就执行几次返回第3个结果集。 4.针对第3个结集执行having xx进行筛选返回第4个结果集。 5.针对第4个结果集排序。
2.partition by用法 1partition bypartition by与group by不同之处在于前者返回的是分组里的每一条数据并且可以对分组数据进行排序操作。后者只能返回聚合之后的组的数据统计值的记录。 2rank() over(partition by A order by B)与dense_rank() over(partition by A order by B)区别 rank 是按照A进行分组分组里面的数据按照B进行排序over即在什么之上rank()即跳跃排序(比如存在两个第一名接下来就是第三名) dense_rank() 连续排序(如果有两个第一名时接下来仍然是第二名) 3row_number() over(partition by A order by B) row_number(): 如果有两个第一名时只返回一个结果。 参考https://blog.csdn.net/locken123/article/details/127411319 3.ORDER BY 2 DESC,1 ASC先按照选择列里的第二列进行降序排序,再按选择列的第一列降序排序
4.case when then else end Case when 语句能在sql语句中植入语句判断的逻辑类似于if else语句 1 case 字段 when 什么时候 then 结果 else 结果2 end
eg以如下形式显示课程 ID课程 name最高分最低分平均分及格率中等率优良率优秀率;及格为60中等为70-80优良为80-90优秀为90 SELECT SC.CId,Course.Cname,MAX(SC.score) 最大值,MIN(SC.score) 最小值,AVG(SC.score) 平均数, SUM(CASE WHEN SC.score60 then 1 else 0 END)*1.0/COUNT(SC.score) 及格率, SUM(CASE WHEN SC.score BETWEEN 70 AND 80 then 1 else 0 END)*1.0/COUNT(SC.score) 中等率, SUM(CASE WHEN SC.score BETWEEN 80 AND 90 then 1 else 0 END)*1.0/COUNT(SC.score) 优良率, SUM(CASE WHEN SC.score90 then 1 else 0 END)*1.0/COUNT(SC.score) 优秀率 FROM SC,Course WHERE SC.CIdCourse.CId GROUP BY SC.CId,Course.Cname
5.distinct去重
6.DATEDIFF( datepart , startdate , enddate )计算时间差 datepare值year | quarter | month | week | day | hour | minute | second | millisecond startdate开始日期 enddate 结束日期 GetDate()获取当前的系统日期类似于mysql中Current_timestamp 参考https://blog.csdn.net/Candy_Sir/article/details/85231400
7.WEEKOFYEAR( date) 参数此方法仅接受一个参数。 date -我们要从中提取周数的日期或日期时间。 返回值它返回星期数。
8.MONTHdata同上返回月份函数
9.limit 仅可用于没有重复数值时eg3738题对比
学习链接https://blog.csdn.net/wbc199685/article/details/108605284?spm1001.2014.3001.5501 记录题号9.11.152127 38 39