MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで値が同じ場合に特定の行をフェッチするにはどうすればよいですか?


値が同じ場合に特定の行をフェッチするには、GROUPBYを使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable659(Id int,Name varchar(100),Score int);
Query OK, 0 rows affected (0.52 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable659 values(11,'John',45);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable659 values(15,'John',59);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable659 values(15,'Sam',61);
Query OK, 1 row affected (0.14 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable659;

これにより、次の出力が生成されます-

+------+------+-------+
| Id   | Name | Score |
+------+------+-------+
|   11 | John |    45 |
|   15 | John |    59 |
|   15 | Sam  |    61 |
+------+------+-------+
3 rows in set (0.00 sec)

値が同じ場合に特定の行をフェッチするクエリは次のとおりです-

mysql> select *from ( select *from DemoTable659 order by Id desc) tbl group by Name;

これにより、次の出力が生成されます-

+------+------+-------+
| Id   | Name | Score |
+------+------+-------+
|   11 | John | 45    |
|   15 | Sam  | 61    |
+------+------+-------+
2 rows in set (0.04 sec)

  1. 現在の日付にMySQLに登録している人の数を取得します

    このために、COUNT()をGROUP BY MONTH()と一緒に使用できます。現在の日付と一致させるには、CURRENT_DATE()を使用します。現在の日付は次のとおりです- mysql> select curdate() ; +------------+ | curdate()  | +------------+ | 2019-11-30 | +------------+ 1 row in set (0.00 sec) まずテーブルを作成しましょう- mysql> create table DemoTable1819      (

  2. MySQLテーブルの特定の日付のカウントを取得します

    まずテーブルを作成しましょう- mysql> create table DemoTable1946    (    ShippingDate date    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1946 values('2019-12-11'); Query OK, 1 row affected (0.00 sec) mysql> i