用sql统计一张表里各地区人数和前六人数占比
时间: 2024-05-01 10:16:47 浏览: 182
假设表名为"people",字段包括"id"、"name"、"region",其中"id"为主键。
统计各地区人数:
```
SELECT region, COUNT(*) AS num_people
FROM people
GROUP BY region
ORDER BY num_people DESC;
```
统计前六人数占比:
```
SELECT region, COUNT(*) AS num_people,
COUNT(*) / (SELECT COUNT(*) FROM people) AS ratio
FROM people
GROUP BY region
ORDER BY num_people DESC
LIMIT 6;
```
上面的代码中,第一个查询按照地区分组,使用COUNT函数统计每个地区的人数,使用ORDER BY排序。第二个查询除了统计人数之外,还使用子查询计算总人数,然后计算出每个地区人数占比,并使用LIMIT限制结果行数为6。
相关问题
用sql统计一张表内各地区人数和前六地区人数占比
假设表名为"population",包含字段"region"表示地区,"population"表示人口数量,则可以使用以下SQL语句进行统计:
1. 统计各地区人数
```
SELECT region, SUM(population) AS total_population
FROM population
GROUP BY region
```
2. 统计前六地区人数占比
```
SELECT region, SUM(population) AS total_population,
SUM(population) / (SELECT SUM(population) FROM population) AS percentage
FROM population
GROUP BY region
ORDER BY total_population DESC
LIMIT 6
```
以上SQL语句会按照人口数量从大到小排序,然后取前六个地区,并计算出它们的人口数量占总人口数量的比例。
用sql统计表中各地区人数以及前六地区的占比
可以使用以下 SQL 语句来统计表中各地区人数以及前六地区的占比:
SELECT area, COUNT(*) AS count, COUNT(*) / (SELECT COUNT(*) FROM table_name) AS ratio
FROM table_name
GROUP BY area
ORDER BY count DESC
LIMIT 6;
其中,table_name 是你要统计的表的名称,area 是地区的列名。这个 SQL 语句会按照人数从高到低排序,并且只显示前六个地区的统计结果。ratio 列显示的是该地区人数在总人数中的占比。
阅读全文