用sql统计一张表内各地区人数和前六地区人数占比
时间: 2023-05-22 08:06:15 浏览: 154
可以使用以下 SQL 语句来完成这个任务:
```
SELECT 地区, COUNT(*) AS 人数, ROUND(COUNT(*) / SUM(COUNT(*)) OVER(), 4) AS 占比
FROM 表名
GROUP BY 地区
ORDER BY 人数 DESC
LIMIT 6;
```
其中,表名需替换成你要统计的表名,地区需替换成表中存储地区的列名。这个 SQL 查询会按照人数从高到低排序,并且只返回前六个地区的结果,结果会包含每个地区的人数和人数占总人数的比例。
相关问题
用sql统计一张表里各地区人数和前六人数占比
假设表名为"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提取excel中前六城市人数和占比的代码
以下是提取Excel中前六城市人数和占比的SQL代码:
SELECT TOP 6 City, Population, Percentage
FROM [Sheet1$]
ORDER BY Population DESC
其中,Sheet1是Excel表格的名称,City是城市名称,Population是人口数量,Percentage是占比。
阅读全文