当前位置:首页 » 编程语言 » sql分组求占比最优写法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql分组求占比最优写法

发布时间: 2023-01-03 07:09:49

1. sql分组统计求百分比

SELECT

,CONVERT(DECIMAL(15,3),SUM(CASE 及格WHEN 'Y' THEN 1 ELSE 0 END))/COUNT(1)*100
FROM

GROUP BY

-------------输出结果-------------
A 100.00000000000000
B 33.33333333333300
C 50.00000000000000

2. SQL SEVER如何分类汇总后再求每一项所占的百分比

SELECT国家,sum(出口量)as出口数量,SUM(出口量)*100.0/(selectSUM(出口量)fromseamlesswhere年份=2015)as占比
FROMseamlesswhere年份=2015
groupby国家
orderby出口数量desc

3. 求一个sql语句,查询某个值在数据集中的占比情况

写一个sql语句恐怕不行。

应当先写一段sql语句,计算出links字段的总和。
然后再写一段sql语句,以links字段的每一个值除以links字段的总和,这样就能得出links字段每个值在该字段总和里的占比。
这种情况下,就要写两端sql语句。

4. sql 求占比

select

t1.province,

cast(count(1)*100/(selectcount(1)fromprovince)asvarchar(10))+'%'

from

provincet1

groupby

t1.province

5. sql语言 怎么求每组最大,就是用group by 分组后,求每组某列最大

在分组中使用max()函数即可。

例图中表格:

如果是最小,则可以使用 min()函数

6. SQL 两次分组求百分比

select order_type,is_olser,sum(counts)/c2 from order_today
lett join (select order_type ot,sum(counts) c2 from group by order_today) ot2 on ot2.ot=order_today.order_type
group by order_type,is_olser,c2

7. sql语句 求比例

你这个表示通过SQL语句得来的还是表本来就是这样的???
占比的公式就是Y舱/总数 C舱/总数 F舱/总数

如果是通过SQL语句的得来的把SQL语句贴出来!!
如果不是表本来就是这样的结构的话,建议你建个视图就行了
下面是SQL语句的查询部分
select 日期 , Y舱 ,Y舱/总数 as Y舱占比 , C舱 ,C舱/总数 as C舱占比 , F舱 , F舱/总数 as F舱占比 , 总数
from 表名

就行了

8. sql 按百分比分组

你可以用类似如下的写法来实现

select Validation_rate,count(name) as name from

(select
case when Validation_rate between 0.01 and 0.1 then '1% - 10%'
when Validation_rate between 0.11 and 0.2 then '11% - 20%'
...
when Validation_rate between 0.91 and 1 then '91% - 100%'

end as Validation_rate ,name)
from Doctor_territory ) as T

group by Validation_rate
order by Validation_rate

9. 用SQL查询占比

sqlserver写法
创建表
create table test
(id int,
name varchar(1))
insert into test values (1,'a')
insert into test values (2,'a')
insert into test values (1,'a')
insert into test values (1,'a')
insert into test values (2,'a')
执行
select a.id,a.count1,(a.count1+0.0)/b.count2
from
(select id,count(*) count1 from test group by id) a,
(select count(*) count2 from test) b

10. 求一个SQL百分占比的写法

你没试吗?这就是所有占总销量80%的所有客户,您糊涂了吗?即然您只要了80%的客户,都是一个百分数,还有什么多少?还排什么序?
不过,看在分的面子上,后面我又给了您占总销量80%以上的所有客户按销量反排序的查询。

MSSQL:
select
A,
SUM(B) AS 销售额合计,
100*SUM(B)/(SELECT SUM(B) FROM 表) AS 占总百分比
FROM 表 group by A
HAVING 100*SUM(B)/(SELECT SUM(B) FROM 表)=80

select
A,
SUM(B) AS 销售额合计,
100*SUM(B)/(SELECT SUM(B) FROM 表) AS 占总百分比
FROM 表 group by A
HAVING 100*SUM(B)/(SELECT SUM(B) FROM 表)=80

占总销量80%以上的所有客户按销量排序。

select
A,
SUM(B) AS 销售额合计,
100*SUM(B)/(SELECT SUM(B) FROM 表) AS 占总百分比
FROM 表 group by A
HAVING 100*SUM(B)/(SELECT SUM(B) FROM 表)>=80
order by SUM(B) desc