SQL数据的分组与聚合

//数据的分组与聚合
GROUP BY 用于根据前面的的参数集分组结果
SELECT _State
FORM MemberDetails
GROUP BY _State;


SELECT _State
FROM MemberDetails
WHERE _State IN ('Mega state','Golden State','new State')
GROUP BY _State;


//可以基于多列分组
SELECT _State
FROM MemberDetails
WHERE _State IN ('Mega state','Golden State','new State')
GROUP BY _State,City;


//数据汇总聚合函数
COUNT()    //用于统计结果中记录的数目,统计非NULL值,可以接受表达式作为参数,可以插入通配符*


SELECT COUNT(*)
FROM MemberDetails;


SELECT COUNT(City),COUNT(LastName)
FROM MemberDetails;


//根据SQL规则,不允许组合聚合函数和非聚合的列
SELECT City,COUNT(MemberId)
FROM MemberDetails;
//这样是不行的,因为City可能返回多行数据,而COUNT仅返回一行


SELECT _State,COUNT(LastName)
FROM MemberDetails
GROUP BY _State;
//这样就可以了 


//Group by 实质上将结果分为多个组,每个组都是所有记录的一个子集


SUM() //用于累加结果
//自动忽略NULL值


AVG()  //用于求结果平均值


MAX()  //求最大值
MIN()  //求最小值


//HAVING子句用于过滤最终结果中的分组.HAVING子句类似于一个WHERE子句,它的位置紧紧跟在GROUP BY子句之后


SELECT Category,COUNT(FavCategory.CategoryId) AS Popularity
FROM FavCategory INNER JOIN Category
ON FavCategory.CategoryId = Category.CategoryId
GROUP BY Category.Category
HAVING COUNT(FavCategory.CategoryId) > 3
ORDER BY Popularity DESC;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值