Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL中频率计数和内部大小写的组合_Sql_Inner Join_Oracle Apex_Frequency - Fatal编程技术网

SQL中频率计数和内部大小写的组合

SQL中频率计数和内部大小写的组合,sql,inner-join,oracle-apex,frequency,Sql,Inner Join,Oracle Apex,Frequency,对于一个学生人数超过6人的班级,如何将两者结合起来以显示学生姓名(sname)和学区编号(sectno)?到目前为止,我有这个 SELECT student.sname, enroll.sectno, FROM student INNER JOIN enroll ON student.sid=enroll.sid 与 看起来你很接近。我认为以下几点应该适合您: SELECT student.sname, enroll.sectno, COUNT(enroll.grade) AS F

对于一个学生人数超过6人的班级,如何将两者结合起来以显示学生姓名(
sname
)和学区编号(
sectno
)?到目前为止,我有这个

SELECT student.sname, enroll.sectno,

FROM student

INNER JOIN enroll 

ON student.sid=enroll.sid


看起来你很接近。我认为以下几点应该适合您:

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

在您的2md选择中,与拥有6名以上学生的班级没有关系,因此,
分组依据
应基于类似
classid
的列。然后,您可以使用窗口聚合将两者简单地结合起来:


student
enroll
表格之间的关系是什么?我明白了。我对SQL本身非常陌生,所以我从来没有想过使用分区或使用窗口聚合。这是非常有用的我不知道我应该在哪里声明我的计数变量。在声明内部联接之后,我尝试使用WHERE子句。谢谢你的时间和帮助。这是非常有信息性的,谢谢您的反馈@S.Rain很高兴能帮上忙!:)
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
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