我有2张桌子,如下所述是学生和学历。我必须根据必填字段找到所有学生的详细信息,并且记录的顺序应基于他的分数,年龄,最高学历,最低学历和最低学历的百分比。
我尝试了各种查询,其中包括了所有必填字段。但是假设一个学生有3个学历,则记录会被乘以多次。 例如:
Sr.No Student_ID Highest Qualification Marks
1 001 Grad SSC 80
2 001 Grad HSC 60
3 001 Grad Grad 80
4 002 HSC SSC 60
5 002 HSC HSC 50
6 003 SSC SSC 40
这是我尝试过的查询
SELECT std.stud_id, std.dob, std.highest_qual, MIN(std.lowest_qual) , std.marks
FROM student std
LEFT JOIN qualifications qual ON std.stud_id = qual.stud_id
Where std.fees_paid ='Y'
ORDER BY std.marks, std.dob, std.highest_qual
预期结果:
001 23-04-1991 Grad SSC 80
002 20-09-1992 HSC SSC 60
003 13-05-1992 SSC SSC 40
查询结果:查询返回所有记录,而不是每个学生的单个记录
001 23-04-1991 Grad SSC 80
001 23-04-1991 Grad HSC 60
001 23-04-1991 Grad GRAD 80
002 20-09-1992 HSC SSC 60
002 20-09-1992 HSC HSC 60
003 13-05-1992 SSC SSC 40
答案 0 :(得分:0)
我相信您的qualifications
表中有一些指标可以建议给定资格的排名(例如qual_rank
)。如果是这样,您可以这样做
select * from
( select s.*, row_number() OVER ( partition by student_id
order by q.qual_rank ) as rn
from student s join qualifications qual ON std.stud_id = qual.stud_id
) sq where rn = 1;
如果没有,则必须定义层次结构
select * from
( select s.*, row_number() OVER ( partition by student_id order by
CASE qualification WHEN 'SSC' THEN 1
WHEN 'HSC' THEN 2
WHEN 'Grad' THEN 3
END
) as rn
from student s) sq where rn = 1;
答案 1 :(得分:0)
我认为表结构是这样的,我已经提到了该结构的查询。
<ion-content padding>
<ion-content padding>
<input ngui-auto-complete
[(ngModel)]="model1"
[source]="Mountains"
[open-on-focus]="false"
display-property-name = "MountainName"
[list-formatter] = "autocompleteListFormatter"
placeholder="Enter the name of the mountain"
max-num-list = "5"
min-chars ="2"/>
<h2> {{ model1?.height }} </h2>
<h4><i><strong>{{ model1?.desc}}</strong></i></h4>
</ion-content>
</ion-content>
您可能需要根据所需的数据和输出将INNER JOINS更改为LEFT JOINS。