DBMS:SQL Server
我正在尝试计算某种语言用于字幕的次数的百分比,为此,我尝试从数据库中检索一种语言被使用的次数。
我想做的计算是: languagesusedforsubtitles / totalamountofsubtitlesused * 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;
这是我的第一个查询的结果:
SQL Server会整数除法,所以0/1
是0
不是0.5
。一个简单的解决方案是:
COUNT(*) * 100.0 / (SELECT COUNT(watched_media_ID) FROM [watched_media]
将.0
值从整数更改为十进制数-除法更加直观。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句