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

多くの行の文字列を1つの行に結合し、対応するユーザーIDの合計を別の列に表示する単一のMySQLクエリ?


これには、GROUP_CONCAT()を使用できます。 SUM()を使用してユーザーIDを追加します。まずテーブルを作成しましょう-

mysql> create table DemoTable1960
   (
   StudentId int,
   StudentName varchar(20)
   );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1960 values(100,'Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1960 values(101,'Bob');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1960 values(102,'David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1960 values(103,'Mike');
Query OK, 1 row affected (0.00 sec)

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

mysql> select * from DemoTable1960;

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

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|       100 | Chris       |
|       101 | Bob         |
|       102 | David       |
|       103 | Mike        |
+-----------+-------------+
4 rows in set (0.00 sec)

これは、多くの行の文字列を1つの行に結合し、ユーザーIDの合計を表示するクエリです-

mysql> select sum(StudentId),group_concat(StudentName separator '.') as ListOfStudent from DemoTable1960;

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

+----------------+----------------------+
| sum(StudentId) | ListOfStudent        |
+----------------+----------------------+
|            406 | Chris.Bob.David.Mike |
+----------------+----------------------+
1 row in set (0.00 sec)

  1. 行の値を合計して結果を並べ替えるMySQLクエリ?

    このために、ORDERBY句とともにGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1499    -> (    -> StudentName varchar(20),    -> StudentMarks int    -> ); Query OK, 0 rows affected (0.46 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert in

  2. 日付から月の列を作成し、重複する日付が見つかった対応する列の合計を表示するにはどうすればよいですか?

    これには、MySQLでDATE_FORMAT()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> PurchaseDate date,    -> Amount int    -> ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable valu