• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
PowerCoder
博客园    首页    新随笔    联系   管理    订阅  订阅

SQL Server中GROUP BY和HAVING(链接)

下面的这篇微软官方文档,介绍了SQL Server中的GROUP BY语句:

SELECT - GROUP BY- Transact-SQL

其中这里有说到,如果GROUP BY后面的列中有NULL值,那么SQL Server会将GROUP BY列中所有的NULL值认为是相等的,并将NULL归类到一个GROUP中:

If a grouping column contains NULL values, all NULL values are considered equal, and they are collected into a single group.

例如,下面的Students表的Grade列中有两行NULL值:

SELECT [Id]
      ,[Name]
      ,[Grade]
      ,[Age]
FROM [dbo].[Students];

如果我们在查询中去GROUP BY列Grade,那么SQL Server会认为那两行NULL值是相等的,所以最后GROUP BY查询后,会将Grade列中的NULL值归类到一个GROUP:

SELECT Grade,COUNT(*) as [Count] FROM [dbo].[Students] 
GROUP BY Grade;

 

下面的这篇微软官方文档,还介绍了SQL Server中的HAVING语句:

SELECT - HAVING (Transact-SQL)

其中有提到,HAVING语句后面可以用and/or来拼接多个聚合函数的条件:

<search_condition> Specifies one or more predicates for groups and/or aggregates to meet.

 

posted @ 2024-11-06 15:11  PowerCoder  阅读(325)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3