Среднее значение для каждого языка на SQL сервере - PullRequest
0 голосов
/ 25 мая 2020

Я делаю школьное задание, где мне нужно получить среднее значение каждого введенного языка из таблицы. Я изо всех сил пытаюсь понять это (для перевода: Taal = Language) Как мне получить процентное соотношение каждого языка, введенного в мою таблицу?

SELECT t.Taal, t.Percentage
FROM (
  SELECT
    Language.Name as Taal, SUM(WatchedMedia.SubtitleID) * COUNT(DISTINCT WatchedMedia.WatchedMediaID) as Percentage,
    ROW_NUMBER() OVER (PARTITION BY WatchedMedia.SubtitleID ORDER BY Language.Name DESC) rn    
    FROM WatchedMedia
    INNER JOIN Subtitles ON [WatchedMedia].SubtitleID = Subtitles.SubtitleID
    INNER JOIN Language ON Language.LanguageID = Subtitles.LanguageID 
    WHERE  WatchedMedia.SubtitleID = Subtitles.SubtitleID
    GROUP BY Language.Name, Language.LanguageID, WatchedMedia.SubtitleID
) t
GO

Это результат, который я получаю сейчас

enter image description here

Это записи в таблице (я заменил Percentage на количество записей для каждого языка).

Единственный хороший процент I Возвращаюсь испанца sh (вроде). Я не знаю, как получить правильное среднее значение для каждой языковой записи в моей таблице и преобразовать в проценты.

enter image description here

1 Ответ

0 голосов
/ 25 мая 2020
SELECT Language.Name as Taal,COUNT(*) * 100.0 / (SELECT COUNT(WatchedMedia.WatchedMediaID) FROM WatchedMedia) as Percentage
FROM WatchedMedia
INNER JOIN Subtitles ON [WatchedMedia].SubtitleID = Subtitles.SubtitleID
INNER JOIN Language ON Language.LanguageID = Subtitles.LanguageID 
GROUP BY Language.Name, Language.LanguageID, WatchedMedia.SubtitleID
GO

Это то, что мне нужно. Это решило проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...