sql - 协助 SQL Server 中的百分比计算
问题描述
数据库管理系统:SQL 服务器
我正在尝试计算某种语言用于字幕的次数百分比,为此我试图从我的数据库中检索一种语言的使用次数
我想做的计算是: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
值从整数更改为十进制数 - 并且除法更直观。
推荐阅读
- reactjs - 反应路由器和上下文
- kubernetes - 我自己的 kubernetes 运行不会从官方文档中产生相同的结果
- javascript - 带有图像的jquery模态窗口
- tensorflow - 使用 tensorflow 的 OD API 时评估结果低
- laravel - 从 Laravel 阅读 gmail
- game-physics - 需要在这个马里奥游戏物理备忘单上解释
- c - 将 C 代码映射到现有的单元测试代码
- android - 如何在android中为GTM V5初始化customtagprovider及其回调方法
- sql - 在 MVC 中将大量记录从视图传递到数据库
- reactjs - 如何在打字稿中实现 else 部分?