使用sql语句计算百分比

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用sql语句计算百分比相关的知识,希望对你有一定的参考价值。

使得SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime
得出每个的百分比

    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) & "%"

    select mz as '民族',count(*) as '人数',SUBSTRING (convert(varchar (20),

    (count(*)/80.00*100) ),1,4)+'%'   as '比例'  from ryxx group by mz 

参考技术A 有点不明白
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) & "%"本回答被提问者和网友采纳
参考技术B 注意%的格式问题:一般使用:
select
case when sum(TotelTime) = '0' then '-' else to_char((sum(SA)/sum(TotelTime))*100,'fm99999990.00')||'%'
from table
where ...
每一个百分比的计算都依此转化即可
参考技术C 发表结构看看。追问

图片上就是表的一部分啊

SQL Server中协助计算百分比

DBMS:SQL Server

我正在尝试计算某种语言用于字幕的百分比,为此,我试图从数据库中检索一种语言被使用的次数

我要进行的计算是:字幕使用的语言/字幕使用的总数* 100

我的猜测是,在我的SELECT语句中,我需要以其他方式来检索值,但似乎无法弄清楚如何。

这是我到目前为止的“有效”查询,它显示一种语言用于字幕的次数:

-- Sorted language count / total used languages * 100
SELECT DISTINCT [language].name AS "Taal", COUNT(*) AS "Percentage"
FROM [profile]
INNER JOIN [watched_media] ON [watched_media].profileid = [profile].profile_ID
INNER JOIN subtitles ON [watched_media].subtitlesid = [subtitles].subtitles_ID
INNER JOIN language ON [language].language_ID = [subtitles].languageid
GROUP BY [language].name;

这是我一开始尝试的结果,但结果只有0:

SELECT DISTINCT [language].name AS "Taal", COUNT(*) / (SELECT COUNT(watched_media_ID) FROM [watched_media]) * 100 AS "Hoevaak gebruikt"
FROM [profile]
INNER JOIN [watched_media] ON [watched_media].profileid = [profile].profile_ID
INNER JOIN subtitles ON [watched_media].subtitlesid = [subtitles].subtitles_ID
INNER JOIN language ON [language].language_ID = [subtitles].languageid
GROUP BY [language].name;

这是我的第一个查询的结果:

“结果图像”“>

DBMS:SQL Server,我正在尝试计算某种语言用于字幕的次数的百分比,为此,我试图从数据库中检索一种语言被使用的次数...

答案

SQL Server执行整数除法,因此0/10而不是0.5。一个简单的解决方案是:

以上是关于使用sql语句计算百分比的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server中协助计算百分比

sql 语句系列(众数中位数与百分比)[八百章之第十五章]

如何在数据透视语句中包含百分比计算

使用 T-SQL 如何计算考试成绩百分比?

SQL:如何使用多列分区计算百分比增加

Oracle里SQL语句的百分比运算