`
happinessmoon
  • 浏览: 75731 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql 年龄段统计

SQL 
阅读更多

表employee(empid,birthday)  
  部分数据:  
  empid       birthday  
  1                 1964-3-2  
  2                 1980-5-9  
  3                 1972-9-30  
  ....      
  想得到按年龄段的人数,比如说20-30岁的员工数,30-40岁的员工数,40-50岁的员工数,50岁以上的员工数  
  即由员工表得到以下的统计数据  
  AgeLevel     count  
  20-30           30  
  30-40           5  
  40-50           8  
  50岁以上     7  
  怎样写这条语句?

 

语句如下::

select   N'AgeLevel'=(case((datediff(year,birthday,getdate())-1)/10)   when   2   then   '21-30'   when   3   then   '31-40'   when   4   then'41-50'   else   '50以上'   end),  
  count(*)   as   count    
  from    
  employee  
  group   by   (case((datediff(year,birthday,getdate())-1)/10)   when   2   then   '21-30'   when   3   then   '31-40'   when   4   then'41-50'   else   '50以上'   end   )

 

 

或者以10岁为递增

 

select
cast(f1*10+1 as varchar(3))+'-'+cast(f1*10+10 as varchar(3)) as 年龄段,f2 as 人数
from
(
select datediff(d,A0111,getdate())/365/10 as f1,
count(*) as f2
from dbo.A001 
group by datediff(d,A0111,getdate())/365/10) a
order by cast(f1*10+1 as varchar(3))+'-'+cast(f1*10+10 as varchar(3))

 

 

 

第二种形式

 

16-20 21-30 31-40 41-50 51-60 61-70

 

   0        8         9         8         5         3

 

SELECT
SUM(
CASE WHEN datediff(year, A0111, getdate()) BETWEEN 16 AND 20 THEN 1 ELSE 0 END) AS '16-20',
SUM(CASE WHEN datediff(year, A0111, getdate()) BETWEEN 21 AND 30 THEN 1 ELSE 0 END) AS '21-30',
SUM(CASE WHEN datediff(year, A0111, getdate()) BETWEEN 31 AND 40 THEN 1 ELSE 0 END) AS '31-40',
SUM(CASE WHEN datediff(year, A0111, getdate()) BETWEEN 41 AND 50 THEN 1 ELSE 0 END) AS '41-50',
SUM(CASE WHEN datediff(year, A0111, getdate()) BETWEEN 51 AND 60 THEN 1 ELSE 0 END) AS '51-60',
SUM(CASE WHEN datediff(year, A0111, getdate()) BETWEEN 61 AND 70 THEN 1 ELSE 0 END) AS '61-70'
FROM
dbo.A001

 

 

分享到:
评论

相关推荐

    PostgreSQL 语法示例:分数段统计

    ### PostgreSQL 语法示例:分数段统计 #### 知识点概述 在处理大量数据时,经常需要对数据进行分段统计,以便更好地理解和分析数据分布情况。本篇将通过一个具体的示例来介绍如何使用PostgreSQL中的`CASE WHEN`...

    大数据课程设计-Hadoop-MapReduce实现sql的统计、groupby和join-全部源码

    例如,对用户按年龄分组,统计每个年龄段的用户数量,Map阶段会输出<年龄段,用户ID>,Reduce阶段则汇总相同年龄段的用户ID,计算出每个年龄段的用户数。 最后,我们来看JOIN操作。在传统数据库中,JOIN用于合并两...

    SQL查询技术在报表统计中的应用.pdf

    统计全校教授、副教授、讲师和助教的年龄分布时,可以使用CASE语句为不同职称赋予不同的数值,并利用这些数值进行年龄段的统计计算。 综上所述,SQL查询技术在报表统计中扮演着至关重要的角色。通过对基本SELECT...

    基于SQL的重点疾病和重点手术查询统计.pdf

    基于SQL的重点疾病和重点手术查询统计的知识点涵盖了多个方面,具体包括:SQL在医疗数据分析中的应用、数据库表结构的理解、SQL查询语句的编写技巧,以及医疗统计的标准和要求。 首先,SQL是一种广泛应用于数据库...

    SQL语句常用考核知识点说明

    - **统计每门课程的学生人数**:使用GROUP BY和COUNT函数。 - **查找平均分最高的课程**:结合聚合函数AVG和ORDER BY进行排序。 - **删除选课少于5人的课程**:先计算每门课程的选课人数,然后用DELETE语句删除满足...

    零基础学SQL

    例如,计算每个年龄段的学生人数: ```sql SELECT Age, COUNT(*) AS NumberOfStudents FROM Students GROUP BY Age; ``` 八、子查询与条件运算符 子查询是在查询中嵌套另一个查询,用于提供条件或过滤数据。例如,...

    数据库SQL语句讲解.pptx

    创建数据库表字段的完整步骤通常包括以下几步: 1. 定义表名。 2. 设定字段名,选择合适的数据类型。 3. 设置字段的约束,如主键、外键、唯一性、默认值或检查约束。 4. 指定字段的长度、精度和小数位数。 5. 添加...

    嵌入式sql程序代码

    本文档提供了一段用于访问SQL Server数据库的嵌入式SQL代码示例。这段代码主要用于演示如何在C语言环境中集成SQL语句来操作数据库。具体来说,它实现了连接到SQL Server数据库、执行查询操作并更新记录的功能。 ###...

    Spark SQL 实验

    User对象可以是自定义的case class或java bean,通常包含用户的ID、性别、年龄、职业和邮编等属性。 之后,通过调用toDF()方法,可以将RDD转换成DataFrame,即结构化的数据集。DataFrame允许进行SQL风格的操作。...

    mysql测试库(100万数据库和世界人口数据库).rar

    2. **查询操作**:学习如何编写SELECT语句,查询世界人口统计数据,比如找出人口最多的国家,或者按人口降序排列所有国家。 3. **聚合函数**:利用SUM, AVG, COUNT, MAX, MIN等聚合函数,计算世界总人口,平均人口,...

    基于ASP和SQL的图书管理系统的实现

    考虑到图书馆的特殊性,界面应清晰、易用,方便不同年龄段的用户操作。 通过ASP和SQL的结合,这个图书管理系统实现了图书信息的高效管理,为用户提供便捷的服务。对于学习和理解ASP编程以及SQL数据库操作,这样的...

    详细解析 mysql 中的 case when 语句的使用

    ### MySQL中的Case When语句详解 ...此外,`CASE WHEN`还可以与其他SQL语句结合使用,比如聚合函数、子查询等,以满足更复杂的业务需求。希望本文能帮助你更好地理解和使用MySQL中的`CASE WHEN`语句。

    sql常用命令方法

    根据提供的标题、描述、标签及部分内容,我们可以整理出一系列与SQL相关的知识点,这些知识点主要涵盖了数据记录筛选、更新、删除、插入以及统计等操作。同时,还包括了如何创建表、删除表,以及如何通过不同的连接...

    sql语句的练习题

    查询每位同学每个年龄段的人数超过50人的年龄段,并按该年龄段人数及年龄降序排列 ```sql SELECT COUNT(sage) FROM s WHERE ssex = '' GROUP BY sage HAVING COUNT(sage) > 50 ORDER BY COUNT(sage), sage DESC; ``...

    精妙SQL语句.txt

    SELECT * FROM studentinfo WHERE NOT EXISTS(SELECT * FROM student WHERE studentinfo.id = student.id) AND 部门 = "&strdepartmentname&" AND 专业 = "&strprofessionname&" ORDER BY 成绩, 姓名, 年龄;...

    常用sql语句

    SELECT FAge AS 年龄段, AVG(FSalary) AS 平均工资 FROM T_Employee GROUP BY FAge; -- 按年龄分组,计算每个年龄组的平均薪资 SELECT FAge AS 年龄段, COUNT(*) AS 人数 FROM T_Employee GROUP BY FAge; -- 按...

    sql面试大全38题(基本包含所有知识点)

    统计公司在职员工及其年龄排序 **SQL代码**: ```sql select emp_name, title, dept, datediff(dd, birthday, getdate()) / 365 as 年龄 from employee where title <> '离职员工' order by 年龄 ``` **知识点**: ...

    全国身份证地域数据库 (sql语句包)

    5. 结合其他数据源,进行大数据分析,如人口年龄结构、性别比例等社会统计研究。 这个数据库的用途广泛,可以应用于: - 社交网络:验证用户信息,防止虚假注册。 - 金融服务:进行风险评估,识别欺诈行为。 - 电子...

    SQL语言案例学习练习

    - **触发器**:在特定数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行的代码段,用于实现业务规则的约束或自动化处理。 5. **事务处理与并发控制** - **ACID属性**:原子性(Atomicity)、一致性...

    房屋出租管理系统c#+sql

    "不大地方爬覆盖广播了哦爱看空气能拉丰厚iwa 年轻哦ihoq阿娇快哦爱好欧文"这段话可能是在描述系统应具备的特性,比如覆盖广泛、操作简便、功能丰富,以及适应不同年龄层用户的需求。此外,"爱好欧文"可能是指系统的...

Global site tag (gtag.js) - Google Analytics