MYSQL order by 예제&문제 7

by 조쉬 posted Mar 27, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

 

 

-- 등록한 학생중 등록일자가 2006에 해당하는 학생의 학번과 등록일자를 출력하라 . 이때 정렬순서는 학번으로 한다. 

-- 

 

select stu_no, fee_date

from fee

where year(fee_date) = 2006

order by stu_no

;

 

 

-- 등록한 학생에 대하여 학번과 전체 등록금의 총액을 출력하라. 

-- 이 때 출력 순서는 등록금 총액이다. 

 

 select stu_no, sum(fee_total) a

 from fee

 group by stu_no

 order by a

 ;

 

 

 

 select stu_no, sum(fee_total) a

 from fee

 group by stu_no

 order by 2

 ;

 

-- 

-- 학적테이블의 영문이름의 첫 번째 문자가 j보다 큰 아스키 코드로 시작하는 학생의 학번과 이름, 

-- 영문이름을 출력하라 (단, 영문이름 내림차순으로 정렬하라. )

-- 

select stu_no, stu_name, stu_ename

from student

where substring(stu_ename,1,1)> 'j'

order by stu_ename desc

;

 

 

-- 2006년에 등록한 학생에 대하여 학번과 납입한 등록금 총액을 출력하라. 이때 출력순서는 학번은 

-- 오름차순, 등록금 총액은 내림차순이다. 

-- 

 

-- (x)

select stu_no, sum(fee_total)

from fee

group by stu_no, fee_year

HAVING fee_year=2006;

 

 

select stu_no, fee_pay

from fee

where fee_year = 2006

order by stu_no asc, fee_pay desc

;

 

 

-- 교과목 테이블에서 생성년도가 2003년 -2005년 사이 값으로 과목코드, 과목명, 생성년도를 출력하라. 

-- (단, 출력순서는 생성년도 내림차순으로 정렬한 뒤 같은 생성년도인 경우는 과목 코드순으로 정렬 )

-- 

select sub_code, sub_name, create_year

from subject

where create_year BETWEEN 2003 and 2005

order by create_year desc;

 

 

-- 성적 테이블에서 2007년도 1학기 석차순 명부를 학번, 연도, 학기, 평점평균, 총점을 출력하라 

-- (단, 출력순서는 평점평균 내림차순, 총점 내림차순, 동점인 경우에는 학번순서로 정렬한다.)

-- 

select stu_no, sco_year, exam_avg,exam_total

from score

where sco_year = 2007

and sco_term = 1

order by exam_avg desc,exam_total desc, stu_no;

 

 

-- 교수 테이블에서 임용일자가 1997년 이전인 교수코드와 교수이름, 임용일자를 교수임용일자 순으로 정렬하라 ( DATE_FORMAT()함수를 이용하)라

-- 

select prof_name, Create_date, year(Create_date)

from professor

where year(Create_date) <1997

order by 3

;

 

-- 등록테이블에서 2007년에 등록한 학생의 학번과 장학금 총액을 출력하라 

-- 단, 순서는 장학금 총액 오름차순이다. 

-- 

select stu_no, jang_total

from fee

where fee_year = 2007

order by jang_total;

 

-- 내림차순으로 정렬하면?

select stu_no, jang_total

from fee

where fee_year = 2007

order by jang_total desc;

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
use haksa;
 
-- 등록한 학생중 등록일자가 2006에 해당하는 학생의 학번과 등록일자를 출력하라 . 이때 정렬순서는 학번으로 한다. 
-- 
 
select stu_no, fee_date
from fee
where year(fee_date) = 2006
order by stu_no
;
 
 
-- 등록한 학생에 대하여 학번과 전체 등록금의 총액을 출력하라. 
-- 이 때 출력 순서는 등록금 총액이다. 
 
 select stu_no, sum(fee_total) a
 from fee
 group by stu_no
 order by a
 ;
 
 
 
 select stu_no, sum(fee_total) a
 from fee
 group by stu_no
 order by 2
 ;
 
-- 
-- 학적테이블의 영문이름의 첫 번째 문자가 j보다 큰 아스키 코드로 시작하는 학생의 학번과 이름, 
-- 영문이름을 출력하라 (단, 영문이름 내림차순으로 정렬하라. )
-- 
select stu_no, stu_name, stu_ename
from student
where substring(stu_ename,1,1)> 'j'
order by stu_ename desc
;
 
 
-- 2006년에 등록한 학생에 대하여 학번과 납입한 등록금 총액을 출력하라. 이때 출력순서는 학번은 
-- 오름차순, 등록금 총액은 내림차순이다. 
-- 
 
-- (x)
select stu_no, sum(fee_total)
from fee
group by stu_no, fee_year
HAVING fee_year=2006;
 
 
select stu_no, fee_pay
from fee
where fee_year = 2006
order by stu_no asc, fee_pay desc
;
 
 
-- 교과목 테이블에서 생성년도가 2003년 -2005년 사이 값으로 과목코드, 과목명, 생성년도를 출력하라. 
-- (단, 출력순서는 생성년도 내림차순으로 정렬한 뒤 같은 생성년도인 경우는 과목 코드순으로 정렬 )
-- 
select sub_code, sub_name, create_year
from subject
where create_year BETWEEN 2003 and 2005
order by create_year desc;
 
 
-- 성적 테이블에서 2007년도 1학기 석차순 명부를 학번, 연도, 학기, 평점평균, 총점을 출력하라 
-- (단, 출력순서는 평점평균 내림차순, 총점 내림차순, 동점인 경우에는 학번순서로 정렬한다.)
-- 
select stu_no, sco_year, exam_avg,exam_total
from score
where sco_year = 2007
and sco_term = 1
order by exam_avg desc,exam_total desc, stu_no;
 
 
-- 교수 테이블에서 임용일자가 1997년 이전인 교수코드와 교수이름, 임용일자를 교수임용일자 순으로 정렬하라 ( DATE_FORMAT()함수를 이용하)라
-- 
select prof_name, Create_date, year(Create_date)
from professor
where year(Create_date) <1997
order by 3
;
 
 
-- 등록테이블에서 2007년에 등록한 학생의 학번과 장학금 총액을 출력하라 
-- 단, 순서는 장학금 총액 오름차순이다. 
-- 
select stu_no, jang_total
from fee
where fee_year = 2007
order by jang_total;
 
-- 내림차순으로 정렬하면?
select stu_no, jang_total
from fee
where fee_year = 2007
order by jang_total desc;
cs