CodeSignal Intro Databases #7 MostExpensive. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데이터베이스, sql, query, 쿼리
CodeSignal Intro Databases #7
Q.
Mr. Cash wants to keep track of his expenses, so he has prepared a list of all the products he bought this month. Now he is interested in finding the product on which he spent the largest amount of money. If there are products that cost the same amount of money, he'd like to find the one with the lexicographically smallest name.
The list of expenses is stored in a table Products which has the following columns:
- id: unique product id;
- name: the unique name of the product;
- price: the price for one item;
- quantity: the number of items bought.
Mr. 캐시는 그의 지출을 기록하고 싶어서 그가 이번달에 산 모든 물품의 리스트를 준비했다. 이제 그는 가장 많은 돈을 사용한 물건을 찾는 것에 관심이 있다. 만약에 똑같은 돈을 주고 산 물건이 있으면, 글자 오름차순 중 가장 앞의 글자를 찾으면 된다. 지출 리스트는 Products 테이블에 저장되어 있고 컬럼들은 다음과 같다.
- id: 유일한 물건 아이디
- name: 유일한 물건 이름
- price: 물건 가격
- quantity: 산 물건의 수
The resulting table should contain one row with a single column: the product with the lexicographically smallest name on which Mr. Cash spent the largest amount of money.
The total amount of money spent on a product is calculated as price * quantity.
결과 테이블은 한개의 로우와 한개의 컬럼으로 되어있다 : 미스터 캐시가 사용한 가장 많은 돈의 물건 중 사전순으로 가장 빠른 물건 이름 한개이다.
총 사용한 돈은 price 와 quantity 의 곱이다.
Example
- For the following table Products
id
name
price
quantity
1 | MacBook Air | 1500 | 1 |
2 | Magic Mouse | 79 | 1 |
3 | Spray cleaner | 10 | 3 |
the output should be
name
MacBook Air |
- For the following table Products
id
name
price
quantity
1 | Tomato | 10 | 4 |
2 | Cucumber | 8 | 5 |
3 | Red Pepper | 20 | 2 |
4 | Feta | 40 | 1 |
the output should be
name
Cucumber |
While the total cost for each product was 40, Cucumber has the lexicographically smallest name.
- [execution time limit] 10 seconds (mysql)
Process
// Process
//1. Select minimum name, name as result column name
//2. In Products table
//3. Names in selected maximum price*quantity
// 처리과정
//1. name 컬럼 중 가장 앞의 것을 찾는데, 찾은 컬럼 이름은 name으로 한다
//2. Products table 에서 찾는다
//3. price * quantity 에 관련해서, price * quantity 가 가장 큰 것의 name 컬럼들 중 찾는다.
Code.. lemme see example code!!!
코드.. 예제코드를 보자!!!
/*Please add ; after each select statement*/
CREATE PROCEDURE mostExpensive()
BEGIN
SELECT MIN(name) AS name FROM Products
WHERE price * quantity IN (SELECT MAX(price * quantity) FROM Products);
END
Something else you might like...?
2019/10/09 - [Computer/General] - 정보처리기사 실기/필기 - IT신기술동향_전산영어 요점 정리
2019/10/07 - [Computer/General] - 정보처리기사 실기/필기 - 업무 프로세스 요점 정리
2019/02/19 - [Life/Health care] - Lysine 라이신 usage/side effects/dosage 효과/효능/부작용/성인,소아 용법, 복용법
2019/02/28 - [Life/Health care] - Vitamin K, 비타민 K usage/side effects/dosage 효능/부작용/성인,소아 용법