测试那些事儿—SQL server分组查询

时间:2022-09-23 22:27:33

分组查询语句: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..,