男女人口统计分析
在 MS SQL 数据库中,运用 SQL 语句进行男女人口统计分析是很常见的操作。以下将介绍如何实现这一操作。
1. 创建测试表
为了方便演示,我们先在数据库中创建一个测试表。
CREATE TABLE [dbo].[Population](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Gender] [bit] NOT NULL,
[Age] [int] NOT NULL)
GO
-- 插入测试数据
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('张三', 1, 18)
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('李四', 1, 20)
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('王五', 1, 22)
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('赵六', 1, 24)
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('小红', 0, 19)
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('小明', 0, 23)
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('小芳', 0, 25)
INSERT INTO [dbo].[Population](Name, Gender, Age) VALUES('小刚', 0, 27)
2. 统计男女人口数量
使用以下 SQL 语句,可以统计出男女人口数量:
SELECT
CASE Gender
WHEN 1 THEN '男性'
WHEN 0 THEN '女性'
END AS GenderText,
COUNT(*) AS Persons
FROM Population
GROUP BY Gender
ORDER BY Persons DESC
运行结果如下:
GenderText Persons
男性 4
女性 4
从结果中可以看到,本例中男女人口数量都是4人。
3. 按年龄段统计男女人口数量
在现实生活中,我们常常需要统计不同年龄段的男女人口数量。以下是统计18岁以下、18至25岁、25岁以上三个年龄段的 SQL 语句:
SELECT
GenderText,
SUM(CASE WHEN Age<18 THEN 1 ELSE 0 END) AS AgeBelow18,
SUM(CASE WHEN Age BETWEEN 18 AND 25 THEN 1 ELSE 0 END) AS Age18To25,
SUM(CASE WHEN Age>25 THEN 1 ELSE 0 END) AS AgeAbove25
FROM (
SELECT
Gender,
CASE Gender
WHEN 1 THEN '男性'
WHEN 0 THEN '女性'
END AS GenderText,
Age
FROM Population
) AS temp
GROUP BY GenderText
运行结果如下:
GenderText AgeBelow18 Age18To25 AgeAbove25
男性 0 2 2
女性 0 1 3
从结果中可以看到:
男性中18至25岁的人口最多,有2人;
女性中25岁以上的人口最多,有3人;
18岁以下的人口数量都是0。
总结
通过以上演示,我们可以看到在 MS SQL 数据库中进行男女人口统计分析是轻而易举的。
无论是统计男女人口数量还是按年龄段统计男女人口数量,只需要对 SQL 语句进行简单修改即可。这使得 SQL 成为了数据分析师的利器之一。