Postgresql按年龄段和性别分组统计
时间: 2024-02-03 14:04:41 浏览: 31
可以使用PostgreSQL的GROUP BY和CASE语句来按年龄段和性别分组统计,示例代码如下:
```
SELECT
CASE
WHEN age BETWEEN 0 AND 18 THEN '0-18'
WHEN age BETWEEN 19 AND 30 THEN '19-30'
WHEN age BETWEEN 31 AND 45 THEN '31-45'
WHEN age BETWEEN 46 AND 60 THEN '46-60'
ELSE '60+'
END AS age_group,
gender,
COUNT(*)
FROM
your_table
GROUP BY
age_group,
gender
```
这个查询会将年龄分为五个段落:0-18、19-30、31-45、46-60、60+,然后按照年龄段和性别分组统计记录数。你可以将`your_table`替换为你自己的表名,`age`和`gender`替换为你自己的列名。
相关问题
Postgresql按年龄段分组统计
你可以使用PostgreSQL的CASE语句和GROUP BY子句来按年龄段分组统计。以下是一个示例查询,将人员按照年龄段分组并计算每个年龄段的计数:
```
SELECT
CASE
WHEN age <= 18 THEN 'Under 18'
WHEN age BETWEEN 19 AND 30 THEN '19-30'
WHEN age BETWEEN 31 AND 40 THEN '31-40'
WHEN age BETWEEN 41 AND 50 THEN '41-50'
ELSE 'Over 50'
END AS age_group,
COUNT(*) AS count
FROM
people
GROUP BY
age_group;
```
在这个示例中,我们假设有一个名为people的表,其中包含每个人的年龄信息。我们使用CASE语句将人员分组为五个年龄段,并使用GROUP BY子句将它们分组,然后使用COUNT函数计算每个年龄段的计数。
PostgreSQL 按周、月、天 统计问题
可以使用 PostgreSQL 的日期函数和聚合函数来实现按周、月、天的统计。
按周统计:
```
SELECT date_trunc('week', date_column) AS week_start, count(*) AS count
FROM table_name
GROUP BY week_start
ORDER BY week_start;
```
其中,`date_column` 是存储日期的列名,`table_name` 是表名。
按月统计:
```
SELECT date_trunc('month', date_column) AS month_start, count(*) AS count
FROM table_name
GROUP BY month_start
ORDER BY month_start;
```
按天统计:
```
SELECT date_trunc('day', date_column) AS day_start, count(*) AS count
FROM table_name
GROUP BY day_start
ORDER BY day_start;
```
其中,`date_trunc` 函数用于将日期截断到指定的时间单位,`count` 函数用于统计符合条件的行数。