示例
select catid, count(orderid)
from t where catid <> "c666"
group by catid
having count(orderid) > 10
order by count(orderid) desc
首先要从哪个from
表去获取我想要的;有时候需要把一些不需要的去掉(比如测试订单),这就是where
;当求每个品类的订单量时需要做一个分组聚合,也就是group by
;当只要大于10的品类,所以需要把大于10的筛选出来,非大于10的品类过滤掉,这就是having
;最后用select
把他们查询出来了;最后需要取前三的品类,所以需要把查询出来的结果进行一个降序排列,即order by
;只把前三显示出来,也就是limit
以上就是 Sql 语句的一个基本执行顺序,总结一下就是:
from-where-groupby-having-select-orderby-limit
注:Oracle中分页查询使用的是rownum
select * from
(
select selectname,sum(hj) from t_Sale_Bwl group by selectname order by sum(hj) desc
) where rownum<3