데이터 사이언스 100번의 노크(구조화 데이터 처리편) – SQL Part 1 (Q1 to Q20)

데이터 사이언스
해설:

이 코드는 관계형 데이터베이스를 관리하고 조작하기 위한 프로그래밍 언어인 SQL(Structured Query Language)로 작성되었습니다.

이 코드에서는 "receipt"라는 이름의 테이블을 조회하고 별표(*) 와일드카드 문자를 사용하여 테이블의 모든 열과 행을 선택하고 있다. 쿼리 끝에 있는 "LIMIT 10" 구문은 결과 집합을 테이블의 처음 10개의 행으로 제한하고 있다.

간단히 말해, 이 코드는 데이터베이스의 'receipt' 테이블에서 처음 10개의 행을 추출하고 있는 것이다. 'receipt' 테이블 데이터의 정확한 의미와 구조는 데이터베이스의 스키마와 저장된 정보에 따라 달라질 수 있다.
 
 
해설:

이 코드도 SQL(Structured Query Language)로 작성되었으며, "receipt"라는 이름의 테이블을 조회하고 있다.

SELECT 문을 사용하여 특정 열 "sales_ymd", "customer_id", "product_cd", "amount"를 선택하고 있습니다. 이 열들은 판매일, 구매를 한 고객의 ID, 구매한 상품의 코드, 구매 금액 등 구매 거래와 관련된 다양한 정보를 나타낸다.

쿼리 끝에 있는 "LIMIT 10" 구문은 결과 집합을 테이블의 첫 10개의 행으로 제한한다. 즉, 이 쿼리는 'RECIPATE' 테이블에 기록된 처음 10개의 거래 데이터만 반환한다.

요약하면, 이 코드는 'sales_ymd', 'customer_id', 'product_cd', 'amount'라는 컬럼을 통해 데이터베이스의 'receive' 테이블에 기록된 처음 10건의 거래에 대한 특정 정보를 가져오는 것이다. 'RECEIVE' 테이블의 데이터의 정확한 의미와 구조는 데이터베이스의 스키마와 그 안에 저장된 정보에 따라 달라질 수 있다.

 

 
해설:

이 코드도 SQL(Structured Query Language)로 작성되었으며, "receipt"라는 이름의 테이블을 조회하고 있다.

SELECT 문은 "receive" 테이블에서 특정 컬럼의 데이터를 가져오기 위해 사용됩니다. 하지만 이 경우 AS 키워드를 사용하여 컬럼 이름을 변경하고 있습니다. 첫 번째 컬럼은 'sales_ymd'에서 'sales_date'로 이름이 변경되었습니다. 다른 컬럼인 'customer_id', 'product_cd', 'amount'는 원래 이름 그대로 유지됩니다.

쿼리 끝에 있는 "LIMIT 10" 구문은 결과 집합을 테이블의 처음 10개의 행으로 제한한다. 즉, 이 쿼리는 'RECIPATE' 테이블에 기록된 처음 10개의 거래 데이터만 반환한다.

요약하면, 이 코드는 수정된 열 이름 'sales_date', 'customer_id', 'product_cd', 'amount'를 사용하여 데이터베이스의 'receive' 테이블에 기록된 처음 10건의 거래에 대한 특정 열을 가져온다. 'receive' 테이블의 데이터의 정확한 의미와 구조는 데이터베이스의 스키마와 저장된 정보에 따라 달라질 수 있다.
 
 
해설:

이 코드도 SQL(Structured Query Language)로 작성되었으며, "receipt"라는 이름의 테이블을 조회하고 있다.

SELECT 문은 "receive" 테이블에서 특정 데이터 컬럼을 가져오는데 사용된다. 선택된 컬럼은 'sales_ymd', 'customer_id', 'product_cd', 'amount'입니다. 이 열들은 판매일, 구매한 고객의 ID, 구매한 상품의 코드, 구매 금액 등 구매 거래와 관련된 다양한 정보를 나타낸다.

FROM 문은 데이터를 가져올 '영수증' 테이블을 지정한다.

WHERE 구문은 특정 조건에 따라 데이터를 필터링하는 데 사용됩니다. 이 경우 'customer_id' 컬럼이 'CS018205000001'과 같다는 조건에 따라 데이터가 필터링된다. 즉, 이 쿼리는 ID가 'CS018205000001'인 고객이 수행한 거래에 대한 데이터만 가져오는 것이다.

요약하면, 이 코드는 데이터베이스의 'receipate' 테이블에서 특정 열의 정보를 가져오는데, ID가 'CS018205000001'인 특정 고객이 수행한 거래에 대해서만 가져온다는 것이다. 'receipate' 테이블의 데이터의 정확한 의미와 구조는 데이터베이스의 스키마와 저장된 정보에 따라 달라진다.

 
해설:

이 코드도 SQL(Structured Query Language)로 작성되었으며, "receipt"라는 이름의 테이블을 조회하고 있다.

SELECT 문은 "receive" 테이블에서 특정 데이터 컬럼을 가져오는데 사용된다. 선택된 컬럼은 'sales_ymd', 'customer_id', 'product_cd', 'amount'입니다. 이 열들은 판매일, 구매한 고객의 ID, 구매한 상품의 코드, 구매 금액 등 구매 거래와 관련된 다양한 정보를 나타낸다.

FROM 문은 데이터를 가져올 '영수증' 테이블을 지정한다.

WHERE 구문은 특정 조건에 따라 데이터를 필터링하는 데 사용된다. 이 경우 두 가지 조건에 따라 데이터가 필터링됩니다.

customer_id 컬럼이 'CS018205000001'과 같아야 한다.
금액 컬럼은 1000 이상이어야 한다.

즉, 이 쿼리는 ID가 'CS018205000001'인 고객이 거래한 금액이 1000 이상인 데이터만 가져온다는 뜻이다.

요약하면, 이 코드는 데이터베이스의 'receive' 테이블에서 특정 열의 정보를 가져오는데, ID가 'CS018205000001'인 특정 고객이 거래한 거래 중 금액이 1000 이상인 거래만 대상으로 한다. 영수증 테이블의 데이터의 정확한 의미와 구조는 데이터베이스의 스키마와 그 안에 저장된 정보에 따라 달라진다.

 

해설:

이 코드도 SQL(Structured Query Language)로 작성되었으며, "receipt"라는 이름의 테이블을 조회하고 있다.

SELECT 문은 "receive" 테이블에서 특정 데이터 컬럼을 가져오는데 사용된다. 선택된 컬럼은 'sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount'입니다. 이 열들은 판매일, 구매한 고객의 ID, 구매한 상품의 코드, 구매한 상품의 수량, 구매 금액 등 구매 거래와 관련된 다양한 정보를 나타낸다.

FROM 문에서는 데이터를 가져올 '영수증' 테이블을 지정합니다.

WHERE 구문은 특정 조건에 따라 데이터를 필터링하는 데 사용된다. 이 경우 두 가지 조건에 따라 데이터가 필터링됩니다.

customer_id 컬럼이 'CS018205000001'과 같아야 한다.
트랜잭션은 다음 두 가지 조건 중 하나 이상을 충족해야 한다: a. '금액' 컬럼이 1000 이상일 것. b. '수량' 컬럼이 5 이상일 것.

즉, 이 쿼리는 ID가 'CS018205000001'인 고객이 거래한 금액이 1000 이상 또는 수량이 5 이상인 데이터만 가져온다는 뜻이다.

요약하면, 이 코드는 데이터베이스의 'receipate' 테이블에서 특정 열의 정보를 가져오는데, ID가 'CS018205000001'인 특정 고객이 수행한 거래 중 금액이 1000 이상 또는 수량이 5 이상인 거래만을 대상으로 한다. 영수증 테이블의 데이터의 정확한 의미와 구조는 데이터베이스의 스키마와 그 안에 저장된 정보에 따라 달라진다.
 
해설:

이 코드도 SQL(Structured Query Language)로 작성되었으며, "receipt"라는 이름의 테이블을 조회하고 있다.

SELECT 문은 "receive" 테이블에서 특정 데이터 컬럼을 가져오는데 사용된다. 선택된 컬럼은 'sales_ymd', 'customer_id', 'product_cd', 'amount'입니다. 이 열들은 판매일, 구매한 고객의 ID, 구매한 상품의 코드, 구매 금액 등 구매 거래와 관련된 다양한 정보를 나타낸다.

FROM 문은 데이터를 가져올 '영수증' 테이블을 지정한다.

WHERE 구문은 특정 조건에 따라 데이터를 필터링하는 데 사용된다. 이 경우 두 가지 조건에 따라 데이터가 필터링됩니다.

customer_id 컬럼이 'CS018205000001'과 같아야 한다.
금액 컬럼은 1000에서 2000 사이여야 한다.

즉, 이 쿼리는 ID가 'CS018205000001'인 고객이 거래한 금액이 1000에서 2000 사이인 데이터만 가져오는 것이다(단, 1000에서 2000 사이는 포함된다).

WHERE 절의 BETWEEN 연산자는 값의 범위에 따라 결과를 필터링하는 데 사용된다. 이 경우 '금액' 컬럼이 1000에서 2000 사이에 있는 트랜잭션(포함)을 가져오는 데 사용됩니다.

요약하면, 이 코드는 데이터베이스의 'receipt' 테이블에서 특정 열의 정보를 가져오고 있지만, ID가 'CS018205000001'인 특정 고객이 수행한 거래 중 금액이 1000에서 2000 사이인 거래로 제한하고 있다. 영수증 테이블 데이터의 정확한 의미와 구조는 데이터베이스의 스키마와 저장된 정보에 따라 달라진다.

 

해설:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있다.

이 쿼리는 SELECT 문을 사용하여 "RECIPATE" 테이블에서 데이터를 선택하고 있습니다.

선택된 컬럼은 다음과 같습니다. "sales_ymd", "customer_id", "product_cd", "amount"입니다.

이 쿼리는 'customer_id'가 'CS018205000001'과 같고 'product_cd'가 'P0714019'와 같지 않은 레코드만 선택하여 데이터를 필터링하고 있다.

즉, 이 쿼리는 customer_id 'CS018205000001'에 대해 product_cd가 'P071401019'인 레코드를 제외한 모든 레코드를 반환한다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령을 통해 SQL 코드를 노트북 내에서 직접 실행할 수 있다.

 

해설:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스에 대한 쿼리를 수행하고 있습니다.

SELECT 문을 사용하여 "store" 테이블의 모든 컬럼을 선택하고 있습니다.

이 쿼리는 'prefecture_cd'가 '13'과 같지 않고 'floor_area'가 900 이하인 레코드만 선택함으로써 데이터를 필터링하고 있다.

즉, 이 쿼리는 'store' 테이블에서 'prefecture_cd'가 13 이하이고 'floor_area'가 900 이하인 모든 레코드를 반환한다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 통해 SQL 코드를 노트북 내에서 직접 실행할 수 있습니다.
 
해설:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있다.

이 쿼리는 SELECT 문을 사용하여 "store" 테이블의 모든 컬럼을 선택하고 있다.

쿼리는 와일드카드 문자 '%'를 사용한 LIKE 연산자를 사용하여 'store_cd' 열이 'S14'로 시작하는 레코드만 선택함으로써 데이터를 필터링하고 있다.

또한 이 쿼리는 LIMIT 절을 사용하여 반환되는 레코드 수를 10으로 제한하고 있습니다.

즉, 이 쿼리는 'store' 테이블에서 'store_cd'가 'S14'로 시작하는 레코드를 최대 10개까지만 반환합니다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 통해 SQL 코드를 노트북 내에서 직접 실행할 수 있다.

 

해설:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있습니다.

이 쿼리는 SELECT 문을 사용하여 'customer' 테이블의 모든 컬럼을 선택하고 있다.

쿼리는 와일드카드 문자 '%'를 사용한 LIKE 연산자를 사용하여 'customer_id' 열의 끝이 숫자 '1'인 레코드만 선택하여 데이터를 필터링하고 있습니다.

또한 LIMIT 절을 사용하여 반환되는 레코드 수를 10으로 제한하고 있습니다.

즉, 이 쿼리는 'customer_id'의 끝이 숫자 '1'인 'customer' 테이블에서 최대 10개의 레코드를 반환합니다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 사용하면 노트북 내에서 SQL 코드를 직접 실행할 수 있다.

 

해설:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있다.

이 쿼리는 SELECT 문을 사용하여 "store" 테이블의 모든 컬럼을 선택하고 있다.

쿼리는 와일드카드 문자 '%'가 포함된 LIKE 연산자를 사용하여 'address' 열에 'yokohama city' 문자열이 포함된 레코드만 선택함으로써 데이터를 필터링하고 있다.

즉, 이 쿼리는 'store' 테이블에서 'address' 열에 'yokohama city' 문자열이 포함된 모든 레코드를 반환한다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 사용하면 노트북 내에서 SQL 코드를 직접 실행할 수 있습니다.

 

 

해설:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있습니다.

이 쿼리는 SELECT 문을 사용하여 'customer' 테이블에서 모든 컬럼을 선택하고 있다.

이 쿼리는 'status_cd' 컬럼이 정규식 패턴 '^[A-F]'와 일치하는 레코드만 선택함으로써 데이터를 필터링하고 있습니다(~ 연산자 사용).

정규식 패턴 '^[A-F]'는 "status_cd" 컬럼의 A에서 F로 시작하는 모든 값과 일치합니다. 패턴 내 ^ 문자는 문자열의 시작을 나타내며, [A-F]는 문자의 범위를 지정한다.

또한 이 쿼리는 LIMIT 절을 사용하여 반환되는 레코드 수를 10으로 제한하고 있다.

즉, 이 쿼리는 'status_cd' 컬럼이 A~F로 시작하는 'customer' 테이블에서 최대 10개의 레코드를 반환한다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 통해 SQL 코드를 노트북 내에서 직접 실행할 수 있습니다.

 

해설:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있습니다.

이 쿼리는 SELECT 문을 사용하여 'customer' 테이블에서 모든 컬럼을 선택하고 있다.

이 쿼리는 "status_cd" 컬럼이 '[1-9]$' 정규표현식 패턴과 일치하는 레코드만 선택함으로써 데이터를 필터링하고 있습니다(~ 연산자를 사용하고 있습니다).

정규식 패턴 '[1-9]$'는 "status_cd" 컬럼의 1부터 9까지 숫자로 끝나는 모든 값과 일치합니다. 패턴의 $ 문자는 문자열의 끝을 나타내며, [1-9]는 문자 범위를 지정한다.

또한 이 쿼리는 LIMIT 절을 사용하여 반환되는 레코드 수를 10으로 제한하고 있다.

즉, 이 쿼리는 'status_cd' 컬럼의 끝자리가 1부터 9까지의 숫자인 'customer' 테이블에서 최대 10개의 레코드를 반환한다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 사용하면 노트북 내에서 SQL 코드를 직접 실행할 수 있다.
 
설명: 

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있습니다.

이 쿼리는 SELECT 문을 사용하여 'customer' 테이블에서 모든 컬럼을 선택하고 있다.

이 쿼리는 'status_cd' 컬럼이 정규식 패턴 '^[A-F]. *[1-9]$'와 일치하는 레코드만 선택함으로써 데이터를 필터링하고 있습니다(~ 연산자를 사용하고 있습니다).

정규식 패턴 '^[A-F]. *[1-9]$'는 'status_cd' 열에서 A~F로 시작하고 임의의 수의 문자가 이어지며 1~9의 숫자로 끝나는 모든 값과 일치합니다. 패턴 내 ^ 문자는 문자열의 시작을 나타내고, $ 문자는 문자열의 끝을 나타낸다.

또한 이 쿼리는 LIMIT 절을 사용하여 반환되는 레코드 수를 10으로 제한하고 있다.

즉, 이 쿼리는 'status_cd' 컬럼이 A~F 문자로 시작하고 1~9 숫자로 끝나는 'customer' 테이블에서 최대 10개의 레코드를 반환한다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 통해 SQL 코드를 노트북 내에서 직접 실행할 수 있습니다.

 

 
 
설명:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스에 대한 쿼리를 수행하고 있습니다.

SELECT 문을 사용하여 "customer" 테이블의 모든 컬럼을 선택하고 있습니다.

ORDER BY 절을 사용하여 "birth_day" 컬럼을 기준으로 오름차순으로 데이터를 정렬하고 있다.

LIMIT 절은 반환되는 레코드 수를 10으로 제한하는 데 사용됩니다.

즉, 이 쿼리는 'customer' 테이블에서 'birth_day' 컬럼을 기준으로 오름차순으로 데이터를 정렬하면 처음 10개의 레코드를 반환하게 됩니다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 통해 SQL 코드를 노트북 내에서 직접 실행할 수 있다.
 
설명:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있다.

이 쿼리는 SELECT 문을 사용하여 "customer" 테이블의 모든 컬럼을 선택하고 있습니다.

ORDER BY 절을 사용하여 "birth_day" 컬럼을 기준으로 내림차순으로 데이터를 정렬하고 있다.

LIMIT 절은 반환되는 레코드 수를 10으로 제한하는 데 사용됩니다.

즉, 이 쿼리는 'customer' 테이블에서 'birth_day' 컬럼을 기준으로 내림차순으로 데이터를 정렬하면 처음 10개의 레코드를 반환하게 됩니다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행되고 있다. 이 명령어를 통해 SQL 코드를 노트북 내에서 직접 실행할 수 있습니다.
 
설명:

이 코드는 SQL 언어로 작성되었으며, 데이터베이스를 쿼리하고 있다.

쿼리는 "receipt" 테이블에서 "customer_id"와 "amount" 컬럼을 선택하고 있다.

또한 RANK()라는 창 함수를 사용하여 "amount" 컬럼을 기준으로 각 레코드의 순위를 계산하는데, RANK() 함수는 동일한 값에는 동일한 순위를 할당하고, 같지 않은 값에는 순위 사이에 간격을 두어 각 레코드의 순위를 계산한다. 창 함수는 OVER() 구문을 사용하여 정의되며, 순위를 적용할 순서와 파티션 또는 필터링 기준을 지정한다.

쿼리는 ORDER BY 절을 사용하여 "amount" 열을 기준으로 내림차순으로 데이터를 정렬한다.

이 쿼리는 AS 키워드를 사용하여 RANK() 함수의 결과를 '순위'라는 별칭으로 지정한다.

LIMIT 구문은 반환되는 레코드 수를 10으로 제한하기 위해 사용된다.

즉, 이 쿼리는 'receipt' 테이블에서 처음 10개의 레코드를 반환하고, 각 레코드에는 'customer_id', 'amount', 'ranking' 컬럼이 포함되며, 'ranking' 컬럼에는 'amount' 컬럼을 기준으로 한 각 레코드의 순위 가 기재되며, 가장 높은 금액을 가진 레코드의 순위는 1이다.

이 코드는 Jupyter 노트북 내에서 SQL 매직 명령 '%%sql'을 사용하여 실행된다. 이 명령을 통해 노트북 내에서 SQL 코드를 직접 실행할 수 있다.
 

 

설명:

이 코드는 Jupyter 노트북에서 매직 명령 "%%sql"을 사용하여 실행되는 SQL 쿼리입니다.

이 쿼리는 "recipate" 테이블에서 3개의 컬럼을 선택합니다. "customer_id", "amount", 그리고 새로운 "ranking" 열. "customer_id"와 "amount" 열은 단순하며 이 두 필드의 값만 가져오고, "ranking" 열은 ROW_NUMBER()라는 window 함수를 사용하여 생성된 파생 컬럼이다.

ROW_NUMBER() 함수는 지정된 ORDER BY 구문을 기반으로 결과 집합의 각 행에 대해 고유한 연번을 생성한다. 이 함수는 'amount' 열의 값을 기준으로 각 행에 순위를 할당하는 데 사용되며, ORDER BY 구문은 'amount' 열을 기준으로 행을 내림차순으로 정렬하여 가장 높은 금액이 1순위, 두 번째로 높은 금액이 2순위, 이렇게 순서를 지정합니다.

AS 키워드는 새로운 컬럼에 "ranking"이라는 별칭을 부여하는 데 사용됩니다.

마지막으로 LIMIT 구문을 사용하여 쿼리가 반환하는 행 수를 10행으로 제한하고 있습니다.

따라서 이 쿼리의 결과는 "customer_id", "amount", "ranking" 컬럼을 가진 "receive" 테이블의 상위 10개의 행을 반환하며, "ranking" 컬럼에는 "amount" 컬럼의 순서에 따라 각 행에 할당된 연번이 포함되어 있고 가장 높은 금액의 것은 'ranking 1'이 됩니다.

 

Comment