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;以下是我的第一个查询的结果:

发布于 2020-05-26 04:49:40
SQL Server执行整数除法,因此0/1是0而不是0.5。一个简单的解决方案是:
COUNT(*) * 100.0 / (SELECT COUNT(watched_media_ID) FROM [watched_media].0将值从整数更改为十进制数--除法的工作更直观。
https://stackoverflow.com/questions/62010560
复制相似问题