重複するIDから対応する最大値をフェッチするためのMySQL行の連結?
このために、GROUPBY句を使用できます。最大値を見つけるには、MAX()関数を使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable1804 ( Id int, Marks1 int, Marks2 int, Marks3 int ); Query OK, 0 rows affected (0.00 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable1804 values(1,56,89,34); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1804 values(1,98,null,94); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1804 values(2,34,45,78); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1804 values(2,null,67,null); Query OK, 1 row affected (0.00 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select * from DemoTable1804;
これにより、次の出力が生成されます-
+------+--------+--------+--------+ | Id | Marks1 | Marks2 | Marks3 | +------+--------+--------+--------+ | 1 | 56 | 89 | 34 | | 1 | 98 | NULL | 94 | | 2 | 34 | 45 | 78 | | 2 | NULL| 67 | NULL | +------+--------+--------+--------+ 4 rows in set (0.00 sec)
これは、行の連結と最大値の検索のクエリです-
mysql> select Id,max(Marks1),max(Marks2),max(Marks3) from DemoTable1804 group by Id;
これにより、次の出力が生成されます-
+------+-------------+-------------+-------------+ | Id | max(Marks1) | max(Marks2) | max(Marks3) | +------+-------------+-------------+-------------+ | 1 | 98 | 89 | 94 | | 2 | 34 | 67 | 78 | +------+-------------+-------------+-------------+ 2 rows in set (0.00 sec)
-
最大累積値をフェッチするMySQLクエリ
このためには、サブクエリとともに集計関数COUNT(*)を使用します。 GROUPBYも使用されます。 テーブルを作成しましょう- mysql> create table demo23 −> ( −> id int not null auto_increment primary key, −> value1 int, −> value2 int −> ); Query OK, 0 rows affected (1.65 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します
-
MySQL列から最大値を取得しますか?
最初にテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(78); Query OK, 1 row affected (0.18 sec) mysql> insert into Demo