sql学习总结

select product_type,AVG(sale_price),COUNT(*) from Product group by product_type 
having AVG(sale_price)>=2500 and count(*)=2
  1. 聚合函数只能在select 、having、order by三个子句中使用;
  2. group by 子句对表进行分组,聚合键可以有多个,select中的字段必须是聚合键的子集;
  3. where 子句中的条件是针对行的,having子句中的条件是针对组的。有些条件写在where和having中效果相同,那么具体应该写在哪里呢?根据条件的作用来决定,如果是针对行筛选,就写到where中,如果是针对组筛选,就写在having中,这样做的目的是让维护人员可以更好的理解sql语句;
  4. 窗口函数的定义如下:<窗口函数>( [pratition by] … order by ) ,这里的partition by子句也是对表进行分组用的,但是跟group by不同,group by 有聚合功能,而partition by 没有,其分组后组内的行也会显示出来。还要注意的是,partition by 可不是窗口函数啊!
  5. 上述语句的查询结果:查询出以product-type分组的,且分组结果中该类商品的平均销售单价
    >=2500,且该种类商品的数量=2的表,表中显示商品种类、平均售价、商品数量

你可能感兴趣的:(sql)