MySQLでDISTINCTとGROUPBYを選択しますか?
SELECT DISTINCTを使用して、個別の値を指定できます。重複するレコードを削除するために使用し、集計関数でも使用できます。例:MAX、AVGなど。これは単一の列に適用できます。
ここで、列にSELECTDISTINCTを使用するテーブルを作成しています。 CREATEコマンドを使用してテーブルを作成する-
mysql> CREATE TABLE DistinctDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.64 sec)
レコードの挿入-
mysql> INSERT into DistinctDemo values(1,'John'); Query OK, 1 row affected (0.17 sec) mysql> INSERT into DistinctDemo values(2,'John'); Query OK, 1 row affected (0.18 sec) mysql> INSERT into DistinctDemo values(3,'Bob'); Query OK, 1 row affected (0.17 sec) mysql> INSERT into DistinctDemo values(4,'John'); Query OK, 1 row affected (0.15 sec) mysql> INSERT into DistinctDemo values(5,'David'); Query OK, 1 row affected (0.17 sec) mysql> INSERT into DistinctDemo values(6,'Bob'); Query OK, 1 row affected (0.16 sec)>
SELECTコマンドを使用してすべてのレコードを表示します。クエリは次のとおりです-
mysql> SELECT * from DistinctDemo;
上記のクエリを実行すると、次の出力が得られます-
+------+-------+ | id | name | +------+-------+ | 1 | John | | 2 | John | | 3 | Bob | | 4 | John | | 5 | David | | 6 | Bob | +------+-------+ 6 rows in set (0.00 sec)
上記では、ジョンとボブが重複している6つのレコードがあります。 DISTINCTを適用して、重複するレコードを削除できます。構文は次のとおりです-
SELECT distinctcolumn_name from yourTableName order by column_name;
今、私は上記のクエリを適用して重複を削除しています-
mysql> SELECT distinct name from DistinctDemo;
以下は出力です
+-------+ | name | +-------+ | John | | Bob | | David | +-------+ 3 rows in set (0.00 sec)
select group byを使用して、さまざまな列からデータを取得し、1つ以上の列にグループ化できます。これは、集計関数でも適用できます。例:SUM、AVGなど
まず、CREATEコマンドを使用してテーブルを作成しています-
mysql> CREATE table GroupDemo1 -> ( -> id int, -> name varchar(100), -> address varchar(100) -> ); Query OK, 0 rows affected (0.68 sec)
テーブルを作成した後、次のようにレコードをテーブルに挿入しています-
mysql> INSERT into GroupDemo1 values(1,'John','US'); Query OK, 1 row affected (0.18 sec) mysql> INSERT into GroupDemo1 values(2,'Bob','UK'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into GroupDemo1 values(3,'David','US'); Query OK, 1 row affected (0.12 sec) mysql> INSERT into GroupDemo1 values(4,'David','US'); Query OK, 1 row affected (0.15 sec)
これで、SELECTコマンドを使用してすべてのレコードを表示できます-
mysql> SELECT * from GroupDemo1;
以下は出力です-
+------+-------+---------+ | id | name | address | +------+-------+---------+ | 1 | John | US | | 2 | Bob | UK | | 3 | David | US | | 4 | David | US | +------+-------+---------+ 4 rows in set (0.00 sec)
GROUP BYを適用して、同じアドレスと出現回数を確認します。これが構文です-
SELECT column_name1,......N aggregate function( ) from yourTableName group by column_name;
上記の構文をGROUPBY-
に適用してみましょう。mysql> SELECT address, count(*) from GroupDemo1 group by address;
以下は出力です-
+---------+----------+ | address | count(*) | +---------+----------+ | US | 3 | | UK | 1 | +---------+----------+ 2 rows in set (0.00 sec)
-
テーブルの個別の列から平均を選択するMySQLクエリ?
平均を取得するには、AVG()を使用し、それをDISTINCTとともに使用して、個別のレコードから計算します。まずテーブルを作成しましょう- mysql> create table DemoTable1934 ( StudentName varchar(20), StudentMarks int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into
-
MySQLで最高の給与を選択しますか?
これには、MAX()を使用できます。構文は次のとおりです- select MAX(yourColumnName) AS anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo44 −> ( −> employee_id int not null auto_increment primary key, −> employee_name varchar(20), −> employee_salary int −>