SQL语句按年龄分组,统计各个年龄的人数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句按年龄分组,统计各个年龄的人数相关的知识,希望对你有一定的参考价值。

按年龄分组,统计各个年龄的人数,快期末考试了大家帮帮忙,有人说用了两个as语句就做出来了,求过程啊!!!

先确保你的出生年月是datetime的日期类型,语法如下。

select case when datediff(year,出生年月,getdate()) <= 20 then '20岁年龄段'
when datediff(year,出生年月,getdate()) between 21 and 25 then '21-25年龄段'
else '25以上年龄段' end as 年龄段,count(1) as 年龄段人数
from 表
group by
case when datediff(year,出生年月,getdate()) <= 20 then '20岁年龄段'
when datediff(year,出生年月,getdate()) between 21 and 25 then '21-25年龄段'
else '25以上年龄段' end

也可以试试

select sum(case when datediff(year,出生年月,getdate()) <= 20 then 1 else 0 end) '20岁年龄段',
sum(case when datediff(year,出生年月,getdate()) between 21 and 25 then 1 else 0 end) '21-25年龄段',
sum(case when datediff(year,出生年月,getdate()) > 25 then 1 else 0 end) '25以上年龄段'
from 表
参考技术A select COUNT(姓名) from 表 group by 年龄

算法入门统计各个年龄阶段的人数

转载自:https://www.johngo689.com/2158/

1 题目

函数:fun()

功能:统计各个年龄阶段的人数

描述:

N个年龄通过调用随机函数获得,并存放在主函数的age中
要求函数把0-9岁年龄段的放在d[0]中,把10-19岁年龄段的放在d[1]中,依次类推。把100岁及以上的放在d[10]中

结果在主函数中输出

2 思路

随机使用 rand() 函数,头文件为#include <stdlib.h>

rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数,使用 rand() 生成随机数之前需要用随机发生器的初始化函数 srand(unsigned seed)(也位于 stdlib.h 中) 进行伪随机数序列初始化,seed 又叫随机种子,通俗讲就是,如果每次提供的 seed 是一样的话,最后每一轮生成的几个随机值也都是一样的,因此叫伪随机数,所以需要每次提供不同的 seed 达到完全的随机,我们通常用时间函数 time(NULL) 作为 seed ,因为时间值每秒都不同,但是在此题中使用不到time这个工具

3 代码

#include <stdio.h> 
#include <stdlib.h>
#define M 11
#define N 100

/**
函数:fun()
功能:统计各个年龄阶段的人数
描述:
N个年龄通过调用随机函数获得,并存放在主函数的age中
要求函数把0-9岁年龄段的放在d[0]中,把10-19岁年龄段的放在d[1]中,依次类推。把100岁及以上的放在d[10]中
结果在主函数中输出
**/

void fun(int *age, int *d) {
	for (int i = 0; i < N; ++i) {
		if (*(age+i)<100) {
			d[(*(age+i))/10] += 1;
		} else {
			d[M-1] += 1;
		}
	}
}

int main(int argc, char const *argv[]) { 
	int age[N];		// 100个用户
	int d[M]={0}; 		// 11个年龄段
	for (int i = 0; i < N; ++i) {
		*(age+i) = rand()%121;	// 设定年龄的范围是0-120
	}
	fun(age, d);
	printf("各年龄阶段人数数量:\\n");
	for (int i = 0; i < M; ++i) {
		printf("%d ", d[i]);
	}
	printf("\\n");
}

示例结果:

$ gcc ex004.c -o demo
$ ./demo
各年龄阶段人数数量:
10 9 8 4 10 8 7 7 6 11 20

以上是关于SQL语句按年龄分组,统计各个年龄的人数的主要内容,如果未能解决你的问题,请参考以下文章

oracle 年龄段统计

用sql语句实现年龄分段统计

如何写在身份证号码中提取年龄的sql语句

如何写在身份证号码中提取年龄的sql语句

sqlserver语句问题

sql语句中的group by啥意思