需求:需统计出某个集合内,某个段所占的比例,涉及SELECT查询语句的嵌套,如有疑问可留言。

如下:

--按性别进行年度挂号年龄段分析
--男
SELECT 年龄段,SUM(人数) 数量,cast(cast((SUM(人数)/((select count(*) from YXHIS2020..VTBMZGHMX2020 WHERE BTH=0 AND CXB='男')*1.0)*100) as decimal(9,2)) as varchar)+'%' 所占比例 FROM (
SELECT
CASE
WHEN 年龄 between 0 and 12 THEN '0-12 岁'
WHEN 年龄 between 13 and 24 THEN '13-24岁'
WHEN 年龄 between 25 and 36 THEN '25-36岁'
WHEN 年龄 between 37 and 48 THEN '37-48岁'
WHEN 年龄 between 49 and 60 THEN '49-60岁'
ELSE '60岁以上' END 年龄段, 人数,性别
FROM (
SELECT 年龄,人数,性别 FROM (
select DATEDIFF(year, DCSNY, DGH) 年龄,count(CNL) 人数,CXB 性别
from YXHIS2020..VTBMZGHMX2020 WHERE BTH=0 AND CXB='男' group by DATEDIFF(year, DCSNY, DGH),CXB )A GROUP BY A.年龄,A.人数,A.性别)A )B GROUP BY 年龄段

--女
SELECT 年龄段,SUM(人数) 数量,cast(cast((SUM(人数)/((select count(*) from YXHIS2020..VTBMZGHMX2020 WHERE BTH=0 AND CXB='女')*1.0)*100) as decimal(9,2)) as varchar)+'%' 所占比例 FROM (
SELECT
CASE
WHEN 年龄 between 0 and 12 THEN '0-12 岁'
WHEN 年龄 between 13 and 24 THEN '13-24岁'
WHEN 年龄 between 25 and 36 THEN '25-36岁'
WHEN 年龄 between 37 and 48 THEN '37-48岁'
WHEN 年龄 between 49 and 60 THEN '49-60岁'
WHEN 年龄>60 THEN '60岁以上'
ELSE '年龄错误' END 年龄段, 人数,性别
FROM (
SELECT 年龄,人数,性别 FROM (
select DATEDIFF(year, DCSNY, DGH) 年龄,count(CNL) 人数,CXB 性别
from YXHIS2020..VTBMZGHMX2020 WHERE BTH=0 AND CXB='女' group by DATEDIFF(year, DCSNY, DGH),CXB )A GROUP BY A.年龄,A.人数,A.性别)A )B GROUP BY 年龄段

使用SQL Server语句统计某年龄段人数占总人数的比例(多层查询语句嵌套-比例分析)的更多相关文章

  1. SQL Server ->> 性能调优案例之 -- 包含递归查询的视图导致整个查询语句性能下降

    有个语句最近性能下降很厉害,原本1秒就可以查询完毕的事情现在居然需要3-4分钟. 首先我的做法是先快速找出导致整个语句下降的元凶.在这个例子里面查询语句有3个JOIN字句,我通过删除某一个JOIN节点 ...

  2. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  3. Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表)

    Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ==== ...

  4. SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]

    SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数   --创建表格 create table aa ( UserName varchar(50 ...

  5. SQL SERVER的统计信息

    1 什么是统计信息     统计信息 描述了 表格或者索引视图中的某些列的值 的分布情况,属于数据库对象.根据统计信息,查询优化器就能评估查询过程中需要读取的行数及结果集情况,同时也能创建高质量的查询 ...

  6. Sql Server优化---统计信息维护策略

    本位出处:http://www.cnblogs.com/wy123/p/5748933.html 首先解释一个概念,统计信息是什么: 简单说就是对某些字段数据分布的一种描述,让SQL Server大概 ...

  7. SQL Server 等待统计信息基线收集

    背景 我们随时监控每个服务器不同时间段的wait statistics ,可以根据监控信息大概判断什么时候开始出现异常,相当于一个wait statistics基线收集,还可以具体分析占比高的等待类型 ...

  8. SQL Server 数据库 'xxx' 正处于转换状态。请稍后再尝试该语句。

    问题是这样的,最近因义务需要,公司更换了数据库服务器.数据库随之切换到新的服务器上. 服务器是 Windows Server 2012系统,数据库是SQL Server 2012 .上面有 多个数据库 ...

  9. SQL Server 中统计信息直方图中对于没有覆盖到谓词预估以及预估策略的变化(SQL2012-->SQL2014-->SQL2016)

    本位出处:http://www.cnblogs.com/wy123/p/6770258.html 统计信息写过几篇了相关的文章了,感觉还是不过瘾,关于统计信息的问题,最近又踩坑了,该问题虽然不算很常见 ...

  10. SQL Server 查找统计信息的采样时间与采样比例

    有时候我们会遇到,由于统计信息不准确导致优化器生成了一个错误的执行计划(或者这样表达:一个较差的执行计划),从而引起了系统性能问题.那么如果我们怀疑这个错误的执行计划是由于统计信息不准确引起的.那么我 ...

随机推荐

  1. mybatis使用Hashmap传递参数

    mapper 1 <!--传递map的key --> 2 <insert id="addUser2" parameterType="map"& ...

  2. .Net Core AutoFac 使用方法讲解大全,具体详细使用知识总结

    AutoFac 具体使用知识总结 阅读前提示 AutoFac 只是众多IOC框架的其中一种, 比较主流的有Unity.autofac.spring.net.MEF.Injection.Asp.Net ...

  3. C++类型双关

    Σ(っ °Д °;)っ #include<iostream> struct Entity { int x, y; int* GetPtr() { return &x; } /*En ...

  4. 2021 年 25 大 DevOps 工具(上)

    DevOps 正在改变全球软件开发的状态,DevOps 正以某种形式有效地提高提高全球软件公司的上市速度.可销售性.创新和产品质量.2021 年是 DevOps 的重要一年.由于 DevOps 跨越开 ...

  5. 父组件明明使用了v-model,子组件竟然可以不用定义props和emit抛出事件,快来看看吧

    前言 vue3.4增加了defineModel宏函数,在子组件内修改了defineModel的返回值,父组件上v-model绑定的变量就会被更新.大家都知道v-model是:modelValue和@u ...

  6. RabbitMQ 09 主题模式

    主题模式 主题模式结构图: 主题模式实际上就是一种模糊匹配的模式,可以将routingKey以模糊匹配的方式去进行转发. 可以使用*或#来表示: *:任意的一个单词. #:0个或多个单词. 定义配置类 ...

  7. 基于Traefik如何实现向后转发自动去掉前缀?

    前言 Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易. Traefik 可以与现有的多种基础设施组件(Docker.Swarm 模式.Kubernetes.Mara ...

  8. Telnet qsnctfwp

    Windows 安装 Telnet 在控制面板的程序和功能中选择打开或关闭Windows功能 启用 Telnet 客户端并单击确认退出 启动终端,输入命令 telnet 打开 Telnet 客户端 在 ...

  9. 【Python3.10.4】Centos7 ,centos8,centos9源码安装 python3.10.4 解释器

    1.检查是否安装wget如果没有安装则: 终端执行: yum -y install wget 2.下载python3源码包 终端执行: wget https://www.python.org/ftp/ ...

  10. HarmonyOS NEXT应用开发案例——滑动页面信息隐藏与组件位移效果

    介绍 在很多应用中,向上滑动"我的"页面,页面顶部会有如下变化效果:一部分信息逐渐隐藏,另一部分信息逐渐显示,同时一些组件会进行缩放或者位置移动.向下滑动时则相反. 效果图预览 使 ...