データサイエンス100本ノック(構造化データ加工編)- SQL Part 1 (Q1 to Q20)

データサイエンス
解説:

このコードは、リレーショナルデータベースを管理・操作するためのプログラミング言語であるSQL(Structured Query Language)で記述されています。

このコードでは、"receipt "という名前のテーブルを照会し、アスタリスク(*)ワイルドカード文字を使用してテーブルからすべての列と行を選択しています。クエリの最後にある「LIMIT 10」句は、結果セットをテーブルの最初の10行に制限しています。

簡単に言うと、このコードはデータベースの「receipt」テーブルから最初の10行のデータを取り出しているのです。領収書」テーブルのデータの正確な意味と構造は、データベースのスキーマとそこに格納されている情報によって異なります。
 
 
解説:

このコードもSQL(Structured Query Language)で書かれており、"receipt "という名前のテーブルを照会しています。

SELECT文を使用して、特定の列 "sales_ymd", "customer_id", "product_cd", "amount "を選択しています。これらの列は、販売日、購入を行った顧客のID、購入した商品のコード、購入金額など、購入取引に関連する様々な情報を表しています。

クエリの最後にある「LIMIT 10」句は、結果セットをテーブルの最初の10行に制限する。つまり、このクエリは、「recipate」テーブルに記録された最初の10件の取引のデータのみを返すことになる。

要約すると、このコードは、データベースの「recipate」テーブルに記録された最初の10件の取引に関する特定の情報を、「sales_ymd」「customer_id」「product_cd」「amount」というカラムを使って取得していることになる。recipate "テーブルのデータの正確な意味と構造は、データベースのスキーマとそこに格納されている情報によって異なります。
 
解説:

このコードもSQL(Structured Query Language)で書かれており、"receipt "という名前のテーブルを照会しています。

SELECT文は、"recipate "テーブルから特定の列のデータを取得するために使用されます。しかし、この場合、ASキーワードを使ってカラム名を変更しています。最初のカラムは、「sales_ymd」から「sales_date」に名前が変更されています。他のカラム、「customer_id」、「product_cd」、「amount」は、元の名前のまま保持されています。

クエリの最後にある「LIMIT 10」句は、結果セットをテーブルの最初の10行に制限します。つまり、このクエリは、「recipate」テーブルに記録された最初の10件の取引のデータのみを返すことになります。

要約すると、このコードは、データベースの「recipate」テーブルに記録された最初の10件のトランザクションに関する情報の特定の列を、修正した列名「sales_date」、「customer_id」、「product_cd」、「amount」を使って取得している。recipate」テーブルのデータの正確な意味と構造は、データベースのスキーマとそこに格納されている情報によって異なります。
 
解説:

このコードもSQL(Structured Query Language)で書かれており、"receipt "という名前のテーブルを照会しています。

SELECT文は、"recipate "テーブルから特定のデータ列を取得するために使用されます。選択されているカラムは、「sales_ymd」、「customer_id」、「product_cd」、および「amount」です。これらの列は、販売日、購入した顧客のID、購入した商品のコード、購入金額など、購入取引に関連する様々な情報を表しています。

FROM文は、データを取得する「レシート」テーブルを指定します。

WHERE句は、特定の条件に基づいてデータをフィルタリングするために使用されます。この場合、「customer_id」カラムが「CS018205000001」と等しいという条件に基づいてデータがフィルタリングされます。つまり、このクエリーは、ID「CS018205000001」を持つ顧客によって行われた取引のデータのみを取得することになります。

要約すると、このコードはデータベースの「recipate」テーブルから特定の列の情報を取得しているが、ID「CS018205000001」を持つ特定の顧客によって行われた取引についてのみ取得する。領収書」テーブルのデータの正確な意味と構造は、データベースのスキーマとそこに格納されている情報によって異なります。

 

解説:

このコードもSQL(Structured Query Language)で書かれており、"receipt "という名前のテーブルを照会しています。

SELECT文は、"recipate "テーブルから特定のデータ列を取得するために使用されます。選択されているカラムは、「sales_ymd」、「customer_id」、「product_cd」、および「amount」です。これらの列は、販売日、購入した顧客のID、購入した商品のコード、購入金額など、購入取引に関連する様々な情報を表しています。

FROM文は、データを取得する「レシート」テーブルを指定します。

WHERE句は、特定の条件に基づいてデータをフィルタリングするために使用されます。この場合、データは2つの条件に基づいてフィルタリングされます。

customer_idカラムが「CS018205000001」と同じであること。
金額カラムは1000以上でなければならない。

つまり、このクエリーは、ID「CS018205000001」の顧客によって行われた取引で、金額が1000以上のデータのみを取得することになります。

要約すると、このコードはデータベースの「recipate」テーブルから特定の列の情報を取得しているが、ID「CS018205000001」を持つ特定の顧客によって行われた取引で、金額が1000以上であるものだけを対象にしている。領収書テーブルのデータの正確な意味と構造は、データベースのスキーマとそこに格納されている情報によって異なります。

 

解説:

このコードもSQL(Structured Query Language)で書かれており、"receipt "という名前のテーブルを照会しています。

SELECT文は、"recipate "テーブルから特定のデータ列を取得するために使用されます。選択されているカラムは、「sales_ymd」、「customer_id」、「product_cd」、「quantity」、および「amount」です。これらの列は、販売日、購入した顧客のID、購入した商品のコード、購入した商品の数量、購入金額など、購入取引に関連する様々な情報を表しています。

FROM文では、データの取得元である「レシート」テーブルを指定します。

WHERE句は、特定の条件に基づいてデータをフィルタリングするために使用されます。この場合、データは2つの条件に基づいてフィルタリングされます。

customer_idカラムが「CS018205000001」と等しいこと。
トランザクションは、次の2つの条件のうち少なくとも1つを満たす必要があります: a. 「金額」カラムが1000以上であること b. 「数量」カラムが5以上であること。

つまり、このクエリは、ID「CS018205000001」の顧客によって行われた取引で、金額が1000以上、または数量が5以上のデータのみを取得することになります。

要約すると、このコードはデータベースの「recipate」テーブルから特定の列の情報を取得しているが、ID「CS018205000001」を持つ特定の顧客が行った取引で、金額が1000以上か数量が5以上のものだけを対象としている。領収書テーブルのデータの正確な意味と構造は、データベースのスキーマとそこに格納されている情報によって異なります。
 
解説:

このコードもSQL(Structured Query Language)で書かれており、"receipt "という名前のテーブルを照会しています。

SELECT文は、"recipate "テーブルから特定のデータ列を取得するために使用されます。選択されているカラムは、「sales_ymd」、「customer_id」、「product_cd」、および「amount」です。これらの列は、販売日、購入した顧客のID、購入した商品のコード、購入金額など、購入取引に関連する様々な情報を表しています。

FROM文は、データを取得する「レシート」テーブルを指定します。

WHERE句は、特定の条件に基づいてデータをフィルタリングするために使用されます。この場合、データは2つの条件に基づいてフィルタリングされます。

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」列に文字列「横浜市」が含まれるレコードのみを選択することでデータをフィルタリングしています。

つまり、このクエリーは「store」テーブルから「address」カラムに文字列「横浜市」が含まれるすべてのレコードを返すことになります。

このコードは、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」カラムは単純で、これら2つのフィールドの値を取得するだけです。ranking」カラムは、ROW_NUMBER()というウィンドウ関数を使用して作成された派生カラムです。

ROW_NUMBER()関数は、指定されたORDER BY句に基づいて、結果セット内の各行に対して一意の連番を生成します。この場合、この関数は、「金額」列の値に基づいて各行にランクを割り当てるために使用されています。ORDER BY句は、「amount」カラムに基づいて行を降順に並べるので、最も高い金額がランク1、2番目に高い金額がランク2、といった具合になります。

ASキーワードは、新しいカラムに "ranking "というエイリアスを与えるために使用されています。

最後に、LIMIT句を使用して、クエリが返す行の数を10行に制限しています。

したがって、このクエリの結果は、"customer_id"、"amount"、"ranking "のカラムを持つ "recipate "テーブルの上位10行になります。ranking」カラムには、「amount」カラムの順序に基づいて各行に割り当てられた連番が含まれ、最高額のものは「ranking 1」となります。

 

Comment