6人以上の学生がいるクラスで、学生名(sname
)とセクション番号(sectno
)を表示するにはどうすれば両方を組み合わせるのですか?これまでのところ私はあなたが非常に接近していたようFREQUENCY数とINNER CASEをSQLで結合する
SELECT grade,
COUNT(grade)AS Frequency
FROM enroll
GROUP BY grade
HAVING COUNT(grade)>6
6人以上の学生がいるクラスで、学生名(sname
)とセクション番号(sectno
)を表示するにはどうすれば両方を組み合わせるのですか?これまでのところ私はあなたが非常に接近していたようFREQUENCY数とINNER CASEをSQLで結合する
SELECT grade,
COUNT(grade)AS Frequency
FROM enroll
GROUP BY grade
HAVING COUNT(grade)>6
が見えます。この
SELECT student.sname, enroll.sectno,
FROM student
INNER JOIN enroll
ON student.sid=enroll.sid
を持っています。私は以下のあなたのために働くべきだと思う:あなたの2MDで
SELECT
student.sname,
enroll.sectno,
COUNT(enroll.grade) AS Frequency
FROM student
INNER JOIN enroll ON student.sid=enroll.sid
GROUP BY student.sname, enroll.sectno
HAVING COUNT(enroll.grade)>6
私はCOUNT変数をどこに宣言すればいいのか分かりませんでした。 INNER JOINを宣言した後、WHERE句を使用しようとしました。あなたの時間と助けてくれてありがとう。これは非常に有益です –
フィードバックに感謝@ S.Rainは喜んで助けて! :) – WJS
はGROUP BY
がclassid
のような列に基づくべきであるIMHO 6学生、より多くを持っているクラスとは関係がありません]を選択します。そして、あなたは単にウィンドウ表示集計を使用して、両方を組み合わせることができます。
with cte as
(
SELECT student.sname, enroll.sectno,
-- get the count per class, might be a different column than sectno
count(*) over (partition by enroll.sectno) as cnt
FROM student
INNER JOIN enroll
ON student.sid=enroll.sid
)
select * from cte
where cnt > 6
私は参照してください。私はSQL自体が非常に新しいので、Partition Byを使用したり、Windowed Aggregateを使用することは考えていませんでした。これは非常に便利です –
'student'と' enroll'テーブル間の関係は何ですか? –