集約関数の活用(JSON_ARRAYAGG, JSON_OBJECTAGG)

集約関数である「JSON_ARRAYAGG」「JSON_OBJECTAGG」の使い方を確認します。

動作確認テーブル

以下テーブルで動作確認します。

mysql> SELECT * FROM test;
+----+------+-------+
| id | name | score |
+----+------+-------+
|  1 | aaa  |    76 |
|  2 | bbb  |  NULL |
|  3 | ccc  |    98 |
|  4 | ddd  |    43 |
|  5 | eee  |    64 |
|  6 | fff  |    54 |
|  7 | ggg  |  NULL |
+----+------+-------+
7 rows in set (0.00 sec)

JSON_ARRAYAGGの活用

JSON_ARRAYAGG関数を利用すると、JSONリストの形に集約できます。

mysql> SELECT 
    ->   JSON_ARRAYAGG(name)
    -> FROM test;
+---------------------------------------------------+
| JSON_ARRAYAGG(name)                               |
+---------------------------------------------------+
| ["aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg"] |
+---------------------------------------------------+
1 row in set (0.01 sec)

JSON_OBJECTAGGの活用

JSON_OBJECTAGG関数を利用すると、JSONオブジェクトの形に集約できます。

第1引数にkeyを指定して、第2引数にvalueを指定します。

mysql> SELECT 
    ->   JSON_OBJECTAGG(id, name)
    -> FROM test;
+--------------------------------------------------------------------------------------+
| JSON_OBJECTAGG(id, name)                                                             |
+--------------------------------------------------------------------------------------+
| {"1": "aaa", "2": "bbb", "3": "ccc", "4": "ddd", "5": "eee", "6": "fff", "7": "ggg"} |
+--------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

以下のように、JSON_OBJECTと合わせて利用すると、複数カラムをまとめて表示することができます。

mysql> SELECT
    ->   JSON_PRETTY(
    ->     JSON_OBJECTAGG(
    ->       id, 
    ->       JSON_OBJECT('name', name, 'score', score)
    ->     )
    ->   ) AS reslut  
    -> FROM test;
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| reslut                                                                                                                                                                                                                                                                                                                                                        |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| {
  "1": {
    "name": "aaa",
    "score": 76
  },
  "2": {
    "name": "bbb",
    "score": null
  },
  "3": {
    "name": "ccc",
    "score": 98
  },
  "4": {
    "name": "ddd",
    "score": 43
  },
  "5": {
    "name": "eee",
    "score": 64
  },
  "6": {
    "name": "fff",
    "score": 54
  },
  "7": {
    "name": "ggg",
    "score": null
  }
} |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。