스키마 제작
1 |
|
SQL 연습
엔티티 관계도
요구사항
- 1. AlbumId 가 31 인 앨범의 Title 을 구합니다.
1 |
|
AlbumId | Title |
31 | Bongo Fury |
- 2. 아티스트 이름에 ‘the’ 가 들어간 앨범의 AlbumId를 전부 조회합니다.
1 |
|
AlbumId | Name |
209 | The Black Crowes |
210 | The Black Crowes |
211 | The Clash |
212 | The Cult |
213 | The Cult |
… | … |
- 3. invoices 테이블에서 BillingCity 가 Stuttgart, Oslo, Redmond 인 InvoiceId 를 InvoiceId 에 따라 오름차순으로 전부 조회합니다.
1 |
|
InvoiceId | BillingCity |
1 | Stuttgart |
2 | Oslo |
12 | Stuttgart |
14 | Redmond |
24 | Oslo |
… | … |
- 4. tracks 테이블에서 트랙 Name 이 ‘The’ 로 시작하는 trackId들을 전부 조회합니다.
1 |
|
InvoiceId | BillingCity |
1 | Stuttgart |
2 | Oslo |
12 | Stuttgart |
14 | Redmond |
24 | Oslo |
… | … |
- 5. customers 테이블에서 Email 이 ‘gmail.com’ 인 CustomerId를 전부 조회합니다.
1 |
|
CustomerId | |
3 | ftremblay@gmail.com |
6 | hholy@gmail.com |
22 | hleacock@gmail.com |
24 | fralston@gmail.com |
28 | jubarnett@gmail.com |
… | … |
- 6. CustomerId 가 29, 30, 63 인 고객들의 주문금액이 $1.00 이상 $3.00 이하인 주문 (invoice)의 Id를 전부 조회합니다.
- 고객의 주문 금액인 Total을 invoice 테이블에서 찾으세요
1 |
|
InvoiceId | Total |
169 | 1.98 |
364 | 1.98 |
49 | 1.98 |
267 | 1.98 |
- 7. 장르 (genre) 가 ‘Soundtrack’ 인 트랙 중 트랙의 길이 (Milliseconds) 가 300,000 이상 400,000 이하인 트랙들의 Id 들을 전부 조회합니다.
1 |
|
TrackId | Milliseconds | Name |
2125 | 330266 | Soundtrack |
2127 | 328228 | Soundtrack |
2128 | 383764 | Soundtrack |
2131 | 340767 | Soundtrack |
- 8. 각 나라 (country) 별로 고객 (customer) 수를 구해봅니다.
1 |
|
Country | The_Num_of_customers_X_Country |
Argentina | 1 |
Australia | 1 |
Austria | 1 |
Belgium | 1 |
Brazil | 5 |
… | … |
- 9. 총 구매한 비용이 가장 많은 고객 (customer) 5 명의 고객 (customer)의 CustomerId를 조회합니다.
- 특정 고객이 여러개의 invoice를 가지고 있을 수 있음
1 |
|
CustomerId | SUM(i.Total) |
6 | 49.620000000000005 |
26 | 47.620000000000005 |
57 | 46.62 |
45 | 45.62 |
46 | 45.62 |
- 10. 각 장르 (genre) 마다 트랙을 구매한 고객의 id 의 수를 구해봅니다.
1 |
|
genre_name | The Number of customer_ID |
Alternative | 14 |
Alternative & Punk | 244 |
Blues | 61 |
Bossa Nova | 15 |
Classical | 41 |
… | … |
- 11. customers 테이블에서 각 고객의 ‘CustomerId’ 칼럼과 고객의 도시와 나라를 대문자로 합친 문자열 칼럼을 조회해야 합니다.
- 도시와 나라 사이에는 한 칸을 띄웁니다. 예시 도시가 ‘Seoul’ 이고 나라가 ‘South Korea’ 인 경우에는 ‘SEOUL SOUTH KOREA’ 로 합칩니다.
1 |
|
CustomerId | CC |
1 | SãO JOSé DOS CAMPOS BRAZIL |
2 | STUTTGART GERMANY |
3 | MONTRéAL CANADA |
4 | OSLO NORWAY |
5 | PRAGUE CZECH REPUBLIC |
6 | PRAGUE CZECH REPUBLIC |
- 12. 새로운 customer 아이디를 만들어봅니다. 새로운 아이디는 customer의 FirstName 의 첫 4 글자와 LastName 의 첫 2 글자를 합친 소문자입니다.
- 예시 FirstName 이 ‘Mark’ 이고 LastName 이 ‘Zonzales’ 인 경우에는 ‘markzo’ 가 됩니다.
1 |
|
New_Id |
luísgo |
leonkö |
frantr |
bjørha |
franwi |
… |
- 13. 직원 (employee) 중에서 회사에서 2020년 1월 1일 기준으로 7년 넘게 (>) 근무한 직원들의 EmployeeId 를 조회해야 합니다. 조회된 결과는 LastName 을 기준으로 오름차순으로 정렬합니다.
1 |
|
EmployeeId | HireDate |
1 | 2002-08-14 00:00:00 |
8 | 2004-03-04 00:00:00 |
2 | 2002-05-01 00:00:00 |
5 | 2003-10-17 00:00:00 |
7 | 2004-01-02 00:00:00 |
6 | 2003-10-17 00:00:00 |
- 14. 새로운 고객 주문 번호를 만들어 봅니다. 새로운 주문 번호는 각 고객의 FirstName과 LastName과 InvoiceId 를 합쳐서 만듭니다. 각 고객의 새로운 주문 번호를 다음 기준으로 순차적으로 오름차순 정렬합니다
1 |
|
new_number |
AaronMitchell50 |
AaronMitchell61 |
AaronMitchell116 |
AaronMitchell245 |
AaronMitchell268 |
AaronMitchell290 |
- 15. FirstName, LastName, InvoiceId 순으로 오름차순 정렬하세요
- 예를 들어 FirstName 이 ‘Sponge’, LastName 이 ‘Bob’ InvoiceId 가 ‘24’ 인 경우 ‘SpongeBob24’ 가 됩니다.
- 서브쿼리를 이용해서 앨범타이틀이 ‘Unplugged’ 이거나 ‘Outbreak’ 인 Track의 Name을 모두 출력하세요
1 |
|
Name | AlbumId |
Roll Call | 68 |
Otay | 68 |
Groovus Interruptus | 68 |
Paris On Mine | 68 |
In Time | 68 |
Plan B | 68 |