分组查询语句:select 聚合函数 分组的列 from 表名
【where 条件】group by 分组的列 (where是分组之前的条件)
【1】查询网购用户中男女用户的人数各是多少?
(1)分两条SQL语句完成
select count(*)from userinfo where gender=0
select count(*) from userinfo where gender=1
(2)使用分组来完成
select count(*) as 总人数,gender as 性别 from userinfo
group by gender
注意事项:查询的列有限制,除了聚合函数外,必须是分组的项。
【2】在分组之后如何对分组的结果进行排序order by,asc升序,dsc降序
查询每种商品的销售总量并按降序排列
小技巧:“每”,“各”后面的名词就是分组的项
select commodityid as 商品编号,sum(amount) as 销售总量 from orderinfo
group by commodityid
order by sum(amount) desc --排序永远放在最后
【3】如何对分组后的结果进行筛选 having
--where用于分组之前的条件筛选,having用于分组后的条件筛选
查询销售总量超过10的分组信息
select commodityid as 商品编号,sum(amount) as 销售总量 from orderinfo
group by commodityid
having sum(amount)>10
order by sum(amount) desc
--如果在一个查询中同时有where和having可以吗?可以
select ... from ...where...group by ...having...order by..,