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

sql占比

发布时间: 2022-01-12 09:23:52

sql 销售占比

select b.*,b.销售额/a.总销售 as 总销售的百分比 ( select 店名 店名 ,sum(销售额) as 总销售 from 销售明细表 where 1=1 group by 店名) a ,销售明细表 b where a.店名=b.店名

这个是汉字的,可能会有语法错误,但是用这个思想就能搞定你的问题了,

❷ 求一个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

❸ SQL语句计算男女员工各占比例。

假设表员工档案里有性别、姓名两个字段
select count(*) as 员工总数,sum(case when 性别=男 then 1 else 0 end) 男员工数,sum(case when 性别=男 then 1 else 0 end)/nullif(count(*),0) 男所占比例,sum(case when 性别=女 then 1 else 0 end) 女员工数,sum(case when 性别=女 then 1 else 0 end) /nullif(count(*),0)女所占比例
from 员工档案

你自己试试看吧
楼上的写的不错,但是最好注意一些除0问题,要是张空表会报除0错误的。

❹ 用sql语句如何计算百分比或者统计数据个数

declare @biXiu int,@Zongshu int
select @biXiu=count(*) from course where type='必修'
select @Zongshu=count(*) from course
select cast(@biXiu*100.0/@Zongshu as varchar)+'%'
--其中 @biXiu代表必修个总数

--补充字符串说明
SELECT CAST('123.456' as decimal) 将会得到 123(小数点后面的将会被省略掉)。如果希望得到小数点后面的两位。则需要把上面的改为SELECT CAST('123.456' as decimal(38, 2))

❺ 使用sql语句计算百分比

  • 1、若针对每行求百分比: select SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime from 表名 。

  • 2、若是对总计后的值求百分比: select sum(SA)/sum(TotelTime) ,sum(SB)/sum(TotelTime) ,sum(SC)/sum(TotelTime) ,sum(SD)/sum(TotelTime) ,sum(SE)/sum(TotelTime) from 表名

  • 3、当然,以上都是以小数形式显示结果,若要以百分比形式显示结果:乘以100,并保留两位小数,然后加上“%”即可。
    如:round((SA/TotelTime)*100,2) & "%"

❻ sql怎么统计所占百分比

超过百分之几对吧?
首先你一定知道一共有多少对吧?假设就是sum个用户

然后你可以根据积分查出来有多少用户<500的对吧.假设少与N个
那么你想要的就是N/sum

❼ SQL实现占比

sqlserver写法

创建表

createtabletest
(idint,
namevarchar(1))
insertintotestvalues(1,'a')
insertintotestvalues(2,'a')
insertintotestvalues(1,'a')
insertintotestvalues(1,'a')
insertintotestvalues(2,'a')

执行

selecta.id,a.count1,(a.count1+0.0)/b.count2
from
(selectid,count(*)count1fromtestgroupbyid)a,
(selectcount(*)count2fromtest)b

结果

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

写一个sql语句恐怕不行。

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

❾ sql 求占比

select

t1.province,

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

from

provincet1

groupby

t1.province

❿ sql 查询某项比例

那超过50%的用户最多就只有一个?

selecta.商户名称
from
(select商户名称,count(*)count1from交易记录表where交易时间between'2014-01-01'and'2014-01-31'groupby商户名称)a,
(selectcount(*)count2from交易记录表where交易时间between'2014-01-01'and'2014-01-31')b
wherea.count1/b.count2>0.5

时间部分,你自己改写一下,我就随便写了个时间