logo

SQL カウントの区別

DISTINCT キーワードを使用した Count 関数の概念を理解する前に、Count キーワードと Distinct キーワードについて知っておく必要があります。それでは、Count 関数から始めましょう。

SQLのカウントとは何ですか?

COUNT は、結果内のテーブルのレコード数を示す構造化照会言語の関数です。 SQL では、常に SELECT クエリで使用されます。

Count 関数の構文は次のとおりです。

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

count の例では、COUNT キーワードの直後に括弧内に列の名前を定義する必要があります。

カウント関数の例

まず、count 関数を実行する新しいテーブルを作成する必要があります。

次のクエリは、 教師_詳細 テーブル付き 教師ID CREATE TABLE ステートメントを使用して主キーとして使用します。

 CREATE TABLE Teacher_Details ( Teacher_ID INT NOT NULL, Teacher_Name varchar(100), Teacher_Qualification varchar(50), Teacher_Age INT, Teacher_Interview_Marks INT ); 

次の SQL クエリは、INSERT INTO ステートメントを使用して、新しい教師のレコードを上記のテーブルに挿入します。

 INSERT INTO Teacher_Details VALUES (101, Anuj, B.tech, 20, 88); INSERT INTO Teacher_Details VALUES (102, Raman, MCA, 24, NULL); INSERT INTO Teacher_Details VALUES (104, Shyam, BBA, 19, 92); INSERT INTO Teacher_Details VALUES (107, Vikash, B.tech, 20, NULL); INSERT INTO Teacher_Details VALUES (111, Monu, MBA, 21, NULL); INSERT INTO Teacher_Details VALUES (114, Jones, B.tech, 18, 93); INSERT INTO Teacher_Details VALUES (121, Parul, BCA, 20, 97); INSERT INTO Teacher_Details VALUES (123, Divya, B.tech, 21, NULL); INSERT INTO Teacher_Details VALUES (128, Hemant, MBA, 23, 90); INSERT INTO Teacher_Details VALUES (130, Nidhi, BBA, 20, 88); INSERT INTO Teacher_Details VALUES (132, Priya, MBA, 22, NULL); INSERT INTO Teacher_Details VALUES (138, Mohit, MCA, 21, 92); 

次の SELECT ステートメントを使用して、上記のテーブルのレコードを見てみましょう。

 SELECT * FROM Teacher_Details; 

教師ID 先生の名前 教師_資格 教師_年齢 教師_インタビュー_マーク
101 アヌジ ビーテック 二十 88
102 ラマン MCA 24 ヌル
104 シャム BBA 19 92
107 ヴィカシュ ビーテック 二十 ヌル
111 モヌ MBA 21 ヌル
114 ジョーンズ ビーテック 18 93
121 BCA 二十 97
123 ディヴィヤ ビーテック 21 ヌル
128 ヘマント MBA 23 90
130 ニディ BBA 二十 88
132 プリヤ MBA 22 ヌル
138 モヒット MCA 21 92

次のクエリは、Teacher_Details テーブルの Teacher_Age 列の合計値をカウントします。

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

出力:

SQL カウントの区別

上記の SELECT クエリの出力は 12 です。 教師_年齢 フィールドには NULL 値が保持されません。

次のクエリは、上記のテーブルの Teacher_Interview_Column の合計値をカウントします。

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

このクエリでは、画面に次の出力が表示されます。

SQL カウントの区別

Teacher_Interview_Marks 列の 2 つの 5 セルに NULL が含まれているため、上記の SELECT クエリの出力は 7 になります。また、これら 5 つの NULL 値は除外されます。そのため、SELECT クエリの結果には 12 ではなく 7 が表示されます。

Count(*)関数とは何ですか?

これも Count 関数に似ていますが、唯一の違いは、テーブルの NULL 値の数も表示されることです。

Count (*) 関数の構文は次のとおりです。

 SELECT COUNT(*) FROM Name_of_Table; 

例:

ラテックスのフォントサイズ

上記の Teacher_Details を見てみましょう。

教師ID 先生の名前 教師_資格 教師_年齢 教師_インタビュー_マーク
101 アヌジ ビーテック 二十 88
102 ラマン MCA 24 ヌル
104 シャム BBA 19 92
107 ヴィカシュ ビーテック 二十 ヌル
111 モヌ MBA 21 ヌル
114 ジョーンズ ビーテック 18 93
121 BCA 二十 97
123 ディヴィヤ ビーテック 21 ヌル
128 ヘマント MBA 23 90
130 ニディ BBA 二十 88
132 プリヤ MBA 22 ヌル
138 モヒット MCA 21 92

次のクエリは、 Total_Interview_Marks 上の表の列:

 SELECT COUNT (*) FROM Teacher_Details; 

上記の COUNT(*) クエリを使用した SELECT では、画面に次の結果が表示されます。

SQL カウントの区別

SQLのDISTINCTとは何ですか?

DISTINCT キーワードは、結果内のテーブルの列の一意の行を表示します。

DISTINCT キーワードの構文は次のとおりです。

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

DISTINCT クエリでは、特定の値を取得するための WHERE 句の条件を定義することもできます。

DISTINCT の例

まず、Distinct キーワードを実行する新しいテーブルを作成します。

次のクエリは、 自転車_詳細 CREATE TABLE ステートメントを使用してテーブルを作成します。

 CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT ); 

次の SQL クエリは、INSERT INTO ステートメントを使用して、新しい自転車のレコードをテーブルに挿入します。

 INSERT INTO Bike_Details VALUES (KTM DUKE, 2019, Black, 185000); INSERT INTO Bike_Details VALUES (royal Infield, 2020, Black, 165000); INSERT INTO Bike_Details VALUES (Pulsar, 2018, Red, 90000); INSERT INTO Bike_Details VALUES (Apache, 2020, White, 85000); INSERT INTO Bike_Details VALUES (Livo, 2018, Black, 80000); INSERT INTO Bike_Details VALUES (KTM RC, 2020, Red, 195000); 

上記のテーブルのレコードは、次の SELECT クエリを使用して表示されます。

 SELECT * FROM Bike_Details; 

バイク名 バイク_モデル バイク_カラー 自転車_費用
KTM デューク 2019年 185000
ロイヤルエンフィールド 2020年 165000
プレス 2018年 90000
アパッチ 2020年 85,000
ライブ 2018年 80,000
KTM RC 2020年 195,000

テーブル: 自転車_詳細

次の SQL は、上記の Color 列の個別の値をクエリします。 自転車_詳細 テーブル:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

出力:

SQL カウントの区別

見てわかるように、Black、Red、White は Bike_Color 列の 3 つの異なる値です。

DISTINCT キーワードを使用したカウント関数

SELECT クエリの COUNT 関数で DISTINCT キーワードを使用すると、テーブルのフィールドの一意のデータの数が表示されます。

DISTINCT キーワードを使用したカウント関数の構文は次のとおりです。

 SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition]; 

DISTINCT キーワードを使用した Count 関数の例

次の 2 つの SQL 例では、Distinct キーワードを使用した Count 関数の実行について説明します。

例 1:

次のクエリは、4 つのフィールドを持つ College_Students テーブルを作成します。

 CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT ); 

次の INSERT クエリは、学生のレコードを College_Students テーブルに挿入します。

 INSERT INTO College_Students (Student_Id, Student_Name, Student_Age, Student_Marks) VALUES (101, Akhil, 28, 95), (102, Abhay, 27, 86), (103, Sorya, 26, 79), (104, Abhishek, 27, 66), (105, Ritik, 26, 79), (106, Yash, 29, 88); 

次のクエリは、College_Students テーブルの詳細を示します。

Javaのメインメソッド
 SELECT * FROM College_Students; 

学生証 学生の名前 学生_年齢 Student_Marks
101 アキル 28 95
102 アベイ 27 86
103 ソルヤ 26 79
104 アビシェク 27 66
105 リティク 26 79
106 ヤシュ 29 88

テーブル: 大学生_学生

次の SQL ステートメントは、College_Students テーブルの Student_Age 列の一意の値をカウントします。

 SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ; 

このクエリでは、出力に次の表が表示されます。

SQL カウントの区別

Teacher_age 列には 4 つの一意の値が含まれているため、出力には 4 つの値が表示されます。

例 2:

次のクエリは、4 つのフィールドを持つ IT_Employee テーブルを作成します。

 CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT ); 

次の INSERT クエリは、IT 従業員のレコードを IT_Employee テーブルに挿入します。

 INSERT INTO IT_Employee (Employee_Id, Employee_Name, Employee_Age, Employee_Salary) VALUES (101, Akhil, 28, 25000), (102, Abhay, 27, 26000), (103, Sorya, 26, 29000), (104, Abhishek, 27, 26000), (105, Ritik, 26, 29000), (106, Yash, 29, 25000); 

次のクエリは、IT_Employee テーブルの詳細を示します。

 SELECT * FROM IT_Employee; 

従業員ID 従業員名 従業員_年齢 従業員_給与
101 アキル 28 25000
102 アベイ 27 26000
103 ソルヤ 26 29000
104 アビシェク 27 26000
105 リティク 26 29000
106 ヤシュ 29 25000

テーブル: IT_従業員

次の SQL ステートメントは、上記の IT_Employee テーブルの Emp_Age 列の一意の値のみをカウントします。

 SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ; 

このクエリでは、次の出力が得られます。

SQL カウントの区別