现有以下三张表,分别为:diqu(地区表),zhiye(职业表),info(信息表)

最基本的分组查询

1 select dqID,jbID,COUNT(1) from info group by dqID,jbID

这样就得到info(信息表)里各地区、各职业的人数。如果想看得更直观,可以用inner join

1 select MAX(dqName) 地区,MAX(zyName) 职业,COUNT(1) 人数 from info
2 inner join diqu on info.dqID=diqu.ID
3 inner join zhiye on info.zyID=zhiye.ID
4 group by dqID,zyID order by dqID

得到结果:

可是这样只能查到info(信息表)里的人数,如果我们需要查询每个地区、职业的人数,可以用cross join

1 select dqName 地区,zyName 职业,(select COUNT(1) from info where dqID=c.dqID and zyID=c.zyID) 人数 from
2 (select dqName,diqu.ID dqID,zyName,zhiye.ID zyID from diqu cross join zhiye) c
3 order by c.dqID

得到结果:

这样就得到我们想要的结果,可还是不够直观,可以再列转行

1 DECLARE @sql VARCHAR(8000)
2 SELECT @sql=isnull(@sql+',','')+zyName FROM zhiye order BY ID
3 SET @sql='select * from (
4 select dqID,dqName 地区,zyName 职业,(select COUNT(1) from info where dqID=c.dqID and zyID=c.zyID) 人数 from
5 (select dqName,diqu.ID dqID,zyName,zhiye.ID zyID from diqu cross join zhiye) c
6 ) b pivot (max(人数) for 职业 in ('+@sql+'))a'
7 exec(@sql)

得到结果:

SQL动态化多个分组查询的更多相关文章

  1. 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询

    前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法. 语法回顾 SELECT [ALL|DISTINCT] <目标列表达式>[ ...

  2. Hibernate 分组查询 子查询 原生SQL

    分组查询: 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  3. 08章 分组查询、子查询、原生SQL

    一.分组查询 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  4. SQL分组查询group by

    注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里. 1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 group ...

  5. SQL group by分组查询(转)

    本文导读:在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析.创建分组是通过GROUP BY子句实现的.与WHERE子句不同,GROUP BY子句用于归纳 ...

  6. sql sever分组查询和连接查询

    分组查询select 查询信息 from 表名where 条件group by 按照列分组(可多个 ,隔开)order by 排序方式(查询信息如果列名和聚合函数同时出现,要么在聚合函数中出现,要么就 ...

  7. Oracle总结【SQL细节、多表查询、分组查询、分页】

    前言 在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了...印象中就只有基本的SQL语句和相关一些概念....写下本博文的原因就是记载着Or ...

  8. SQL Server数据库————连接查询和分组查询

    SQL Server数据库————连接查询和分组查询 分组查询 select 列from  <表名> where  …… group by  列 注意:跟order  by一样group ...

  9. SQL分组查询及聚集函数的使用

    今天要做一个查询统计功能,一开始有点犯难,上午尝试大半天才写出统计sql语句,才发现自己sql分组查询及聚集函数没学好:其实就是group by子句和几个聚集函数,熟练使用统计功能很简单.在此总结下今 ...

  10. sql server——分组查询(方法和思想)

    思想 先排序在汇总 sql server里分组查询通常用于配合聚合函数,达到分类汇总统计的信息.而其分类汇总的本质实际上就是先将信息排序,排序后相同类别的信息会聚在一起,然后通过需求进行统计计算. 使 ...

随机推荐

  1. Health Kit基于数据提供专业方案,改善用户睡眠质量

    什么是CBT-I? 中国社科院等机构今年发布的<中国睡眠研究报告2023>内容显示,2022年,受访者的每晚平均睡眠时长为7.40小时,近半数受访者的每晚平均睡眠时长不足8小时(47.55 ...

  2. elasticsearch中的数据类型:flattened和join

    flattened:比如你有一个字段的值是一个json,这个json里面又有很多字段,你又不想一个一个的定义这些字段到mapping,就可以用flattened 直接动手:创建索引: PUT pers ...

  3. 带你快速上手HetuEngine

    本文分享自华为云社区<[手把手带你玩转HetuEngine](一)HetuEngine快速上手>,作者:HetuEngine九级代言. HetuEngine是什么 HetuEngine是华 ...

  4. windows使用nc命令基础下载安装---小白篇

    windows使用nc命令 文章源起: 在使用该标题关键词搜索文章,内容多为搬运,且历史悠久. 且,对-l -p 参数未讲解,对小白不友好. 对配置环境变量的方式不理解,误导小白. 对文件解压内容未讲 ...

  5. 循环神经网络RNN完全解析:从基础理论到PyTorch实战

    在本文中,我们深入探讨了循环神经网络(RNN)及其高级变体,包括长短时记忆网络(LSTM).门控循环单元(GRU)和双向循环神经网络(Bi-RNN).文章详细介绍了RNN的基本概念.工作原理和应用场景 ...

  6. WPF-实现屏幕截图(一)

    源码路径:https://gitee.com/LiuShuiRuoBing/wpf_screen_cut 实现功能 实现基本的截屏窗体 鼠标随意选择截图区域 鼠标抬起时弹出按钮区 快捷键Ctrl+Al ...

  7. SQL函数count(),sum()理解

    ①准备-创建测试表: create table test ( id SMALLINT, name varchar(10) ); 插入数据: insert into test values(0,'张三' ...

  8. Django框架——中间件、Auth模块、ContentType

    文章目录 一 什么是中间件 二 中间件有什么用 三 自定义中间件 process_request和process_response process_view process_exception pro ...

  9. Ubuntu更新软件的命令

    更新软件源 apt-get update 更新升级所有软件 apt-get upgrade 更新某个软件 apt-get upgrade 名 列出可更新的软件 apt list --upgradabl ...

  10. 算法解析:LeetCode——机器人碰撞和最低票价

    摘要:本文由葡萄城技术团队原创.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 机器人碰撞 问题: 现有 n 个机器人,编号从 1 开始,每个机器人包含在路 ...