2列の単一のテーブルがあります。
桁
学生証コースID
これらの列は両方とも、互いに多対多の関係を持っています。知りたいこと - 1. 学生全体の学生が登録したコースの平均数。2. 全学生が登録した科目数の 90 パーセンタイル。
PERCENT_DISC() を使用してこれを試しましたが、どういうわけか理解できませんでした。誰でもこのクエリで私を助けることができますか?
2列の単一のテーブルがあります。
学生証コースID
これらの列は両方とも、互いに多対多の関係を持っています。知りたいこと - 1. 学生全体の学生が登録したコースの平均数。2. 全学生が登録した科目数の 90 パーセンタイル。
PERCENT_DISC() を使用してこれを試しましたが、どういうわけか理解できませんでした。誰でもこのクエリで私を助けることができますか?
最初の質問:
SELECT AVG(numCourses)
FROM(
SELECT Cast(COUNT(CourseId) AS DECIMAL(16,2)) as numCourses
FROM YourTable
GROUP BY StudentID
) Grouped
パーセンタイルについて、質問で尋ねられていることを完全に理解している場合:
この最初のクエリは答えではありませんが、理解するのに役立ちます。学生ごとのコース数と、すべての学生の個別のパーセンタイルが表示されます。
SELECT StudentID, count(CourseId)
, PERCENTILE_DISC(0.5)
WITHIN GROUP (ORDER BY COUNT(CourseId))
OVER (PARTITION BY 1) Percentile
FROM YourTAble
GROUP BY StudentID;
このクエリは、パーセンタイルを表示します。
SELECT DISTINCT PERCENTILE_DISC(0.5)
WITHIN GROUP (ORDER BY COUNT(CourseId))
OVER (PARTITION BY 1) Percentile
FROM YourTAble
GROUP BY StudentID
これをこのSQLFiddleに配置しました