表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中的`CASE WHEN`...
例如,对用户按年龄分组,统计每个年龄段的用户数量,Map阶段会输出<年龄段,用户ID>,Reduce阶段则汇总相同年龄段的用户ID,计算出每个年龄段的用户数。 最后,我们来看JOIN操作。在传统数据库中,JOIN用于合并两...
统计全校教授、副教授、讲师和助教的年龄分布时,可以使用CASE语句为不同职称赋予不同的数值,并利用这些数值进行年龄段的统计计算。 综上所述,SQL查询技术在报表统计中扮演着至关重要的角色。通过对基本SELECT...
基于SQL的重点疾病和重点手术查询统计的知识点涵盖了多个方面,具体包括:SQL在医疗数据分析中的应用、数据库表结构的理解、SQL查询语句的编写技巧,以及医疗统计的标准和要求。 首先,SQL是一种广泛应用于数据库...
- **统计每门课程的学生人数**:使用GROUP BY和COUNT函数。 - **查找平均分最高的课程**:结合聚合函数AVG和ORDER BY进行排序。 - **删除选课少于5人的课程**:先计算每门课程的选课人数,然后用DELETE语句删除满足...
例如,计算每个年龄段的学生人数: ```sql SELECT Age, COUNT(*) AS NumberOfStudents FROM Students GROUP BY Age; ``` 八、子查询与条件运算符 子查询是在查询中嵌套另一个查询,用于提供条件或过滤数据。例如,...
创建数据库表字段的完整步骤通常包括以下几步: 1. 定义表名。 2. 设定字段名,选择合适的数据类型。 3. 设置字段的约束,如主键、外键、唯一性、默认值或检查约束。 4. 指定字段的长度、精度和小数位数。 5. 添加...
本文档提供了一段用于访问SQL Server数据库的嵌入式SQL代码示例。这段代码主要用于演示如何在C语言环境中集成SQL语句来操作数据库。具体来说,它实现了连接到SQL Server数据库、执行查询操作并更新记录的功能。 ###...
User对象可以是自定义的case class或java bean,通常包含用户的ID、性别、年龄、职业和邮编等属性。 之后,通过调用toDF()方法,可以将RDD转换成DataFrame,即结构化的数据集。DataFrame允许进行SQL风格的操作。...
2. **查询操作**:学习如何编写SELECT语句,查询世界人口统计数据,比如找出人口最多的国家,或者按人口降序排列所有国家。 3. **聚合函数**:利用SUM, AVG, COUNT, MAX, MIN等聚合函数,计算世界总人口,平均人口,...
考虑到图书馆的特殊性,界面应清晰、易用,方便不同年龄段的用户操作。 通过ASP和SQL的结合,这个图书管理系统实现了图书信息的高效管理,为用户提供便捷的服务。对于学习和理解ASP编程以及SQL数据库操作,这样的...
### MySQL中的Case When语句详解 ...此外,`CASE WHEN`还可以与其他SQL语句结合使用,比如聚合函数、子查询等,以满足更复杂的业务需求。希望本文能帮助你更好地理解和使用MySQL中的`CASE WHEN`语句。
根据提供的标题、描述、标签及部分内容,我们可以整理出一系列与SQL相关的知识点,这些知识点主要涵盖了数据记录筛选、更新、删除、插入以及统计等操作。同时,还包括了如何创建表、删除表,以及如何通过不同的连接...
查询每位同学每个年龄段的人数超过50人的年龄段,并按该年龄段人数及年龄降序排列 ```sql SELECT COUNT(sage) FROM s WHERE ssex = '' GROUP BY sage HAVING COUNT(sage) > 50 ORDER BY COUNT(sage), sage DESC; ``...
SELECT * FROM studentinfo WHERE NOT EXISTS(SELECT * FROM student WHERE studentinfo.id = student.id) AND 部门 = "&strdepartmentname&" AND 专业 = "&strprofessionname&" ORDER BY 成绩, 姓名, 年龄;...
SELECT FAge AS 年龄段, AVG(FSalary) AS 平均工资 FROM T_Employee GROUP BY FAge; -- 按年龄分组,计算每个年龄组的平均薪资 SELECT FAge AS 年龄段, COUNT(*) AS 人数 FROM T_Employee GROUP BY FAge; -- 按...
统计公司在职员工及其年龄排序 **SQL代码**: ```sql select emp_name, title, dept, datediff(dd, birthday, getdate()) / 365 as 年龄 from employee where title <> '离职员工' order by 年龄 ``` **知识点**: ...
5. 结合其他数据源,进行大数据分析,如人口年龄结构、性别比例等社会统计研究。 这个数据库的用途广泛,可以应用于: - 社交网络:验证用户信息,防止虚假注册。 - 金融服务:进行风险评估,识别欺诈行为。 - 电子...
- **触发器**:在特定数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行的代码段,用于实现业务规则的约束或自动化处理。 5. **事务处理与并发控制** - **ACID属性**:原子性(Atomicity)、一致性...
"不大地方爬覆盖广播了哦爱看空气能拉丰厚iwa 年轻哦ihoq阿娇快哦爱好欧文"这段话可能是在描述系统应具备的特性,比如覆盖广泛、操作简便、功能丰富,以及适应不同年龄层用户的需求。此外,"爱好欧文"可能是指系统的...