{"id":21632,"date":"2025-12-08T09:44:57","date_gmt":"2025-12-08T00:44:57","guid":{"rendered":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/?p=21632"},"modified":"2025-12-08T09:44:57","modified_gmt":"2025-12-08T00:44:57","slug":"%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%83%89%e3%82%b7%e3%83%bc%e3%83%88%e3%81%a7sql%e3%82%92%e6%b4%bb%e7%94%a8%e3%81%99%e3%82%8b%e3%81%ab%e3%81%af%ef%bc%9fquery%e9%96%a2%e6%95%b0%e3%81%8b%e3%82%89","status":"publish","type":"post","link":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/21632\/","title":{"rendered":"\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067SQL\u3092\u6d3b\u7528\u3059\u308b\u306b\u306f\uff1fQUERY\u95a2\u6570\u304b\u3089\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u9023\u643a\u307e\u3067\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u65b9\u6cd5"},"content":{"rendered":"<p>Google\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067SQL\uff08Structured Query Language\uff09\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u5927\u91cf\u306a\u30c7\u30fc\u30bf\u306e\u5206\u6790\u3084\u5916\u90e8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u306e\u9023\u643a\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002QUERY\u95a2\u6570\u306b\u3088\u308bSQL\u98a8\u306e\u69cb\u6587\u3067\u306e\u64cd\u4f5c\u304b\u3089\u3001Google Apps Script\uff08GAS\uff09\u3092\u4f7f\u3063\u305f\u672c\u683c\u7684\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u3001BigQuery\u3068\u306e\u7d71\u5408\u307e\u3067\u3001\u69d8\u3005\u306a\u30ec\u30d9\u30eb\u3067SQL\u3092\u6d3b\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067SQL\u3092\u4f5c\u6210\u30fb\u5b9f\u884c\u3059\u308b\u65b9\u6cd5\u304b\u3089\u3001\u5b9f\u52d9\u3067\u306e\u6d3b\u7528\u30b7\u30fc\u30f3\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30c6\u30af\u30cb\u30c3\u30af\u307e\u3067\u3001\u30c7\u30fc\u30bf\u5206\u6790\u3092\u52b9\u7387\u5316\u3059\u308b\u5b9f\u8df5\u7684\u306a\u30ce\u30a6\u30cf\u30a6\u3092\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<div id=\"post-below-intro\"><\/div><h2>\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067SQL\u306f\u4f7f\u3048\u308b\u306e\uff1f<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>Google\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067\u306f\u3001QUERY\u95a2\u6570\u3092\u4f7f\u3063\u3066SQL\u98a8\u306e\u69cb\u6587\u3067\u30c7\u30fc\u30bf\u64cd\u4f5c\u304c\u53ef\u80fd\u3067\u3001\u3055\u3089\u306bGoogle Apps Script\u3092\u901a\u3058\u3066\u5916\u90e8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068SQL\u63a5\u7d9a\u3082\u3067\u304d\u307e\u3059\u3002<\/b><\/span>\u3053\u308c\u306b\u3088\u308a\u3001\u8868\u8a08\u7b97\u30bd\u30d5\u30c8\u306e\u67a0\u3092\u8d85\u3048\u305f\u9ad8\u5ea6\u306a\u30c7\u30fc\u30bf\u5206\u6790\u304c\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/p>\n<p>\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306b\u304a\u3051\u308bSQL\u6d3b\u7528\u306f\u3001\u4e3b\u306b3\u3064\u306e\u30ec\u30d9\u30eb\u3067\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002\u7b2c1\u30ec\u30d9\u30eb\u306f\u3001QUERY\u95a2\u6570\u306b\u3088\u308b\u7591\u4f3cSQL\u69cb\u6587\u3067\u306e\u64cd\u4f5c\u3067\u3059\u3002SELECT\u3001WHERE\u3001GROUP BY\u3001ORDER BY\u3068\u3044\u3063\u305f\u57fa\u672c\u7684\u306aSQL\u53e5\u304c\u4f7f\u7528\u3067\u304d\u3001\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u5185\u306e\u30c7\u30fc\u30bf\u3092\u67d4\u8edf\u306b\u62bd\u51fa\u30fb\u96c6\u8a08\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u7b2c2\u30ec\u30d9\u30eb\u3067\u306f\u3001Google Apps Script\uff08GAS\uff09\u306eJDBC\u30b5\u30fc\u30d3\u30b9\u3092\u4f7f\u3048\u3070\u3001MySQL\u3084PostgreSQL\u306a\u3069\u306e\u4e3b\u8981\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306bSQL\u30af\u30a8\u30ea\u3092\u9001\u4fe1\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001Microsoft SQL Server\u306a\u3069\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306fVPN\u63a5\u7d9a\u306a\u3069\u8ffd\u52a0\u8a2d\u5b9a\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<p>\u7b2c3\u30ec\u30d9\u30eb\u306f\u3001BigQuery\u3084Google Cloud SQL\u3068\u306e\u9023\u643a\u3067\u3059\u3002Google Cloud\u306e\u30c7\u30fc\u30bf\u5206\u6790\u57fa\u76e4\u3068\u7d71\u5408\u3059\u308b\u3053\u3068\u3067\u3001\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u898f\u6a21\u306e\u5206\u6790\u3092\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u304b\u3089\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u591a\u304f\u306e\u30e6\u30fc\u30b6\u30fc\u304c\u300c\u30b0\u30fc\u30b0\u30eb\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8 SQL\u300d\u3067\u691c\u7d22\u3059\u308b\u80cc\u666f\u306b\u306f\u3001Excel\u306e\u30d1\u30ef\u30fc\u30af\u30a8\u30ea\u306b\u76f8\u5f53\u3059\u308b\u6a5f\u80fd\u3084\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u306e\u9023\u643a\u65b9\u6cd5\u3092\u63a2\u3057\u3066\u3044\u308b\u30cb\u30fc\u30ba\u304c\u3042\u308a\u307e\u3059\u3002\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306f\u3001\u3053\u308c\u3089\u306e\u30cb\u30fc\u30ba\u306b\u5bfe\u3057\u3066\u8907\u6570\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>QUERY\u95a2\u6570\u3067SQL\u98a8\u306e\u69cb\u6587\u3092\u4f7f\u3046\u57fa\u672c\u7684\u306a\u65b9\u6cd5\u306f\uff1f<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>QUERY\u95a2\u6570\u306f\u3001SQL\u306e\u4e00\u90e8\u69cb\u6587\u3092\u4f7f\u3063\u3066\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u5185\u306e\u30c7\u30fc\u30bf\u3092\u62bd\u51fa\u30fb\u96c6\u8a08\u3067\u304d\u308b\u95a2\u6570\u3067\u3059\u3002<\/b><\/span><\/p>\n<p>\u53c2\u8003\uff1a<a href=\"https:\/\/support.google.com\/docs\/answer\/3093343?hl=ja\" target=\"_blank\" rel=\"noopener\">QUERY &#8211; Google \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 \u30a8\u30c7\u30a3\u30bf \u30d8\u30eb\u30d7<\/a><\/p>\n<h3>QUERY\u95a2\u6570\u306e\u57fa\u672c\u69cb\u6587<\/h3>\n<p>\u57fa\u672c\u7684\u306a\u66f8\u5f0f\uff1a<\/p>\n<p>=QUERY(\u30c7\u30fc\u30bf\u7bc4\u56f2, &#8220;\u30af\u30a8\u30ea\u6587\u5b57\u5217&#8221;, [\u30d8\u30c3\u30c0\u30fc\u884c\u6570])<\/p>\n<p>\u30b7\u30f3\u30d7\u30eb\u306a\u4f8b\uff1a<\/p>\n<p>=QUERY(A1:D100, &#8220;SELECT A, B, C WHERE D &gt; 100&#8221;)<\/p>\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001A\u301cC\u5217\u306e\u30c7\u30fc\u30bf\u3092\u3001D\u5217\u304c100\u3088\u308a\u5927\u304d\u3044\u884c\u306e\u307f\u62bd\u51fa\u3057\u307e\u3059\u3002<\/p>\n<h3>SELECT\u53e5\u3067\u306e\u5217\u9078\u629e<\/h3>\n<p>\u69d8\u3005\u306a\u9078\u629e\u30d1\u30bf\u30fc\u30f3\uff1a<\/p>\n<p>\/\/ \u5168\u5217\u9078\u629e<\/p>\n<p>=QUERY(A:E, &#8220;SELECT *&#8221;)<\/p>\n<p>\/\/ \u7279\u5b9a\u5217\u306e\u307f\u9078\u629e<\/p>\n<p>=QUERY(A:E, &#8220;SELECT A, C, E&#8221;)<\/p>\n<p>\/\/ \u8a08\u7b97\u5217\u306e\u8ffd\u52a0<\/p>\n<p>=QUERY(A:E, &#8220;SELECT A, B, B*C&#8221;)<\/p>\n<h3>WHERE\u53e5\u3067\u306e\u6761\u4ef6\u6307\u5b9a<\/h3>\n<p>\u6761\u4ef6\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u306e\u4f8b\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u6761\u4ef6\u30bf\u30a4\u30d7<\/th>\n<th>\u30af\u30a8\u30ea\u4f8b<\/th>\n<th>\u8aac\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6570\u5024\u6bd4\u8f03<\/td>\n<td style=\"text-align: left;\">WHERE B &gt; 1000<\/td>\n<td style=\"text-align: left;\">B\u5217\u304c1000\u3088\u308a\u5927\u304d\u3044<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u5b57\u5217\u4e00\u81f4<\/td>\n<td style=\"text-align: left;\">WHERE A = &#8216;\u55b6\u696d\u90e8&#8217;<\/td>\n<td style=\"text-align: left;\">A\u5217\u304c\u55b6\u696d\u90e8\u3068\u5b8c\u5168\u4e00\u81f4<\/td>\n<\/tr>\n<tr>\n<td>\u90e8\u5206\u4e00\u81f4<\/td>\n<td style=\"text-align: left;\">WHERE A CONTAINS &#8216;\u6771\u4eac&#8217;<\/td>\n<td style=\"text-align: left;\">A\u5217\u306b\u6771\u4eac\u3092\u542b\u3080<\/td>\n<\/tr>\n<tr>\n<td>\u8907\u6570\u6761\u4ef6<\/td>\n<td style=\"text-align: left;\">WHERE B &gt; 100 AND C &lt; 50<\/td>\n<td style=\"text-align: left;\">AND\u6761\u4ef6<\/td>\n<\/tr>\n<tr>\n<td>OR\u6761\u4ef6<\/td>\n<td style=\"text-align: left;\">WHERE A = &#8216;\u6771\u4eac&#8217; OR A = &#8216;\u5927\u962a&#8217;<\/td>\n<td style=\"text-align: left;\">\u3044\u305a\u308c\u304b\u306b\u4e00\u81f4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u5b9f\u7528\u4f8b\uff1a\u58f2\u4e0a\u30c7\u30fc\u30bf\u306e\u5206\u6790<\/h3>\n<p>\u6708\u6b21\u58f2\u4e0a\u306e\u96c6\u8a08\u30af\u30a8\u30ea\uff1a<\/p>\n<p>=QUERY(\u58f2\u4e0a\u30c7\u30fc\u30bf!A:E,<\/p>\n<p>&#8220;SELECT A, SUM(D)<\/p>\n<p>WHERE C = &#8216;2025\u5e74&#8217;<\/p>\n<p>GROUP BY A<\/p>\n<p>ORDER BY SUM(D) DESC<\/p>\n<p>LABEL SUM(D) &#8216;\u58f2\u4e0a\u5408\u8a08'&#8221;)<\/p>\n<p><span style=\"background-color: #ffff99;\"><b>\u3053\u306e\u30af\u30a8\u30ea\u306f\u30012025\u5e74\u306e\u30c7\u30fc\u30bf\u3092\u90e8\u7f72\u5225\u306b\u96c6\u8a08\u3057\u3001\u58f2\u4e0a\u9806\u306b\u4e26\u3079\u66ff\u3048\u307e\u3059\u3002<\/b><\/span><\/p>\n<h2>GROUP BY\u3068AGGREGATE\u95a2\u6570\u3067\u96c6\u8a08\u51e6\u7406\u3092\u884c\u3046\u306b\u306f\uff1f<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>QUERY\u95a2\u6570\u306eGROUP BY\u53e5\u3068\u96c6\u8a08\u95a2\u6570\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u8907\u96d1\u306a\u96c6\u8a08\u51e6\u7406\u3092SQL\u98a8\u306b\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/b><\/span>\u30d4\u30dc\u30c3\u30c8\u30c6\u30fc\u30d6\u30eb\u306b\u983c\u3089\u306a\u3044\u67d4\u8edf\u306a\u96c6\u8a08\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3>\u5229\u7528\u53ef\u80fd\u306a\u96c6\u8a08\u95a2\u6570<\/h3>\n<p>QUERY\u95a2\u6570\u3067\u4f7f\u3048\u308b\u96c6\u8a08\u95a2\u6570\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u95a2\u6570<\/th>\n<th>\u7528\u9014<\/th>\n<th>\u4f7f\u7528\u4f8b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>SUM()<\/td>\n<td>\u5408\u8a08<\/td>\n<td>SUM(B)<\/td>\n<\/tr>\n<tr>\n<td>AVG()<\/td>\n<td>\u5e73\u5747<\/td>\n<td>AVG(C)<\/td>\n<\/tr>\n<tr>\n<td>COUNT()<\/td>\n<td>\u30ab\u30a6\u30f3\u30c8<\/td>\n<td>COUNT(A)<\/td>\n<\/tr>\n<tr>\n<td>MAX()<\/td>\n<td>\u6700\u5927\u5024<\/td>\n<td>MAX(D)<\/td>\n<\/tr>\n<tr>\n<td>MIN()<\/td>\n<td>\u6700\u5c0f\u5024<\/td>\n<td>MIN(E)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u8907\u6570\u9805\u76ee\u3067\u306e\u30b0\u30eb\u30fc\u30d7\u5316<\/h3>\n<p>\u90e8\u7f72\u00d7\u6708\u5225\u306e\u96c6\u8a08\u4f8b\uff1a<\/p>\n<p>=QUERY(A:E,<\/p>\n<p>&#8220;SELECT A, B, SUM(C), AVG(D)<\/p>\n<p>WHERE E IS NOT NULL<\/p>\n<p>GROUP BY A, B<\/p>\n<p>ORDER BY A, B&#8221;)<\/p>\n<p><span style=\"background-color: #ffff99;\"><b>A\u5217\u306b\u90e8\u7f72\u540d\u3001B\u5217\u306b\u6708\u3001C\u5217\u30fbD\u5217\u306b\u6570\u5024\u3092\u5165\u308c\u3066\u3001E\u5217\u306b\u306f\u5b8c\u4e86\u6642\u306e\u30c1\u30a7\u30c3\u30af\u306a\u3069\u3092\u5165\u308c\u308b\u3068\u3001C\u5217\u306e\u5408\u8a08\u3068D\u5217\u306e\u5e73\u5747\u3092\u90e8\u7f72\u2192\u6708\u306e\u9806\u306b\u8868\u793a\u3067\u304d\u307e\u3059\u3002<\/b><\/span><\/p>\n<h3>PIVOT\u53e5\u3067\u30af\u30ed\u30b9\u96c6\u8a08<\/h3>\n<p>\u30d4\u30dc\u30c3\u30c8\u5f62\u5f0f\u3067\u306e\u51fa\u529b\uff1a<\/p>\n<p>=QUERY(A:D,<\/p>\n<p>&#8220;SELECT A, SUM(C)<\/p>\n<p>WHERE B = 2025<\/p>\n<p>GROUP BY A<\/p>\n<p>PIVOT D&#8221;)<\/p>\n<p><span style=\"background-color: #ffff99;\"><b>\u3053\u306e\u4f8b\u3067\u306f\u3001A\u5217\u3092\u884c\u3001D\u5217\u3092\u5217\u3068\u3057\u3066\u3001C\u5217\u306e\u5408\u8a08\u3092\u30af\u30ed\u30b9\u96c6\u8a08\u3057\u307e\u3059\u3002<\/b><\/span><\/p>\n<h3>\u6761\u4ef6\u4ed8\u304d\u96c6\u8a08\u306e\u5b9f\u88c5<\/h3>\n<p>CASE\u6587\u306e\u4ee3\u66ff\u624b\u6cd5\uff1a<\/p>\n<p>=QUERY(A:C,<\/p>\n<p>&#8220;SELECT A,<\/p>\n<p>SUM(B) AS &#8216;\u58f2\u4e0a\u5408\u8a08&#8217;,<\/p>\n<p>COUNT(B) AS &#8216;\u4ef6\u6570&#8217;,<\/p>\n<p>SUM(B)\/COUNT(B) AS &#8216;\u5e73\u5747\u5358\u4fa1&#8217;<\/p>\n<p>WHERE C &gt;= DATE &#8216;2025-01-01&#8217;<\/p>\n<p>GROUP BY A&#8221;)<\/p>\n<h2>Google Apps Script\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068SQL\u63a5\u7d9a\u3059\u308b\u65b9\u6cd5\u306f\uff1f<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>Google Apps Script\uff08GAS\uff09\u306eJDBC\u30b5\u30fc\u30d3\u30b9\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u5916\u90e8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u76f4\u63a5SQL\u30af\u30a8\u30ea\u3092\u9001\u4fe1\u3057\u3001\u7d50\u679c\u3092\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306b\u53d6\u308a\u8fbc\u3081\u307e\u3059\u3002<\/b><\/span>\u672c\u683c\u7684\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u9023\u643a\u304c\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/p>\n<h3>STEP1\uff1a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u8a2d\u5b9a<\/h3>\n<p>\u57fa\u672c\u7684\u306a\u63a5\u7d9a\u30b3\u30fc\u30c9\uff1a<\/p>\n<p>function connectToDatabase() {<\/p>\n<p>\/\/ \u63a5\u7d9a\u60c5\u5831\u306e\u8a2d\u5b9a<\/p>\n<p>const server = &#8216;your-server.com&#8217;;<\/p>\n<p>const dbName = &#8216;your_database&#8217;;<\/p>\n<p>const username = &#8216;your_username&#8217;;<\/p>\n<p>const password = &#8216;your_password&#8217;;<\/p>\n<p>const port = 3306;<\/p>\n<p>\/\/ MySQL\u63a5\u7d9aURL\u306e\u69cb\u7bc9<\/p>\n<p>const url = `jdbc:mysql:\/\/${server}:${port}\/${dbName}`;<\/p>\n<p>\/\/ \u63a5\u7d9a\u306e\u78ba\u7acb<\/p>\n<p>const conn = Jdbc.getConnection(url, username, password);<\/p>\n<p>return conn;}<\/p>\n<h3>STEP2\uff1aSQL\u30af\u30a8\u30ea\u306e\u5b9f\u884c<\/h3>\n<p>\u30c7\u30fc\u30bf\u53d6\u5f97\u306e\u5b9f\u88c5\uff1a<\/p>\n<p>function executeQuery() {<\/p>\n<p>const conn = connectToDatabase();<\/p>\n<p>const stmt = conn.createStatement();<\/p>\n<p>\/\/ SQL\u30af\u30a8\u30ea\u306e\u5b9f\u884c<\/p>\n<p>const query = `<\/p>\n<p>SELECT<\/p>\n<p>customer_name,<\/p>\n<p>order_date,<\/p>\n<p>total_amount<\/p>\n<p>FROM orders<\/p>\n<p>WHERE order_date &gt;= &#8216;2025-01-01&#8217;<\/p>\n<p>ORDER BY total_amount DESC<\/p>\n<p>LIMIT 100`;<\/p>\n<p>const rs = stmt.executeQuery(query);<\/p>\n<p>\/\/ \u7d50\u679c\u306e\u51e6\u7406<\/p>\n<p>const data = [];<\/p>\n<p>while (rs.next()) {<\/p>\n<p>data.push([<\/p>\n<p>rs.getString(1),<\/p>\n<p>rs.getDate(2),<\/p>\n<p>rs.getDouble(3)<\/p>\n<p>]);}<\/p>\n<p>rs.close();<\/p>\n<p>stmt.close();<\/p>\n<p>conn.close();<\/p>\n<p>return data;}<\/p>\n<h3>STEP3\uff1a\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3078\u306e\u66f8\u304d\u8fbc\u307f<\/h3>\n<p>\u53d6\u5f97\u30c7\u30fc\u30bf\u306e\u51fa\u529b\uff1a<\/p>\n<p>function importDataToSheet() {<\/p>\n<p>const sheet = SpreadsheetApp.getActiveSheet();<\/p>\n<p>const data = executeQuery();<\/p>\n<p>\/\/ \u30d8\u30c3\u30c0\u30fc\u884c\u306e\u8a2d\u5b9a<\/p>\n<p>const headers = [&#8216;\u9867\u5ba2\u540d&#8217;, &#8216;\u6ce8\u6587\u65e5&#8217;, &#8216;\u5408\u8a08\u91d1\u984d&#8217;];<\/p>\n<p>sheet.getRange(1, 1, 1, headers.length).setValues([headers]);<\/p>\n<p>\/\/ \u30c7\u30fc\u30bf\u306e\u66f8\u304d\u8fbc\u307f<\/p>\n<p>if (data.length &gt; 0) {<\/p>\n<p>sheet.getRange(2, 1, data.length, data[0].length).setValues(data);}<\/p>\n<p>\/\/ \u66f8\u5f0f\u8a2d\u5b9a<\/p>\n<p>sheet.getRange(&#8216;B:B&#8217;).setNumberFormat(&#8216;yyyy-mm-dd&#8217;);<\/p>\n<p>sheet.getRange(&#8216;C:C&#8217;).setNumberFormat(&#8216;\u00a5#,##0&#8217;);<\/p>\n<h3>\u5bfe\u5fdc\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u4e00\u89a7<\/h3>\n<div class=\"summary-box\">\n<div class=\"summary-box__title\"><span class=\"summary-box__title_tag\"><strong>JDBC\u3067\u63a5\u7d9a\u53ef\u80fd\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9<\/strong><\/span><\/div>\n<ul class=\"summary-box__list summary-box__list\">\n<li>MySQL<\/li>\n<li>PostgreSQL<\/li>\n<li>Microsoft SQL Server<\/li>\n<li>Oracle Database\uff08\u5236\u9650\u3042\u308a\uff09<\/li>\n<li>Google Cloud SQL<\/li>\n<\/ul>\n<\/div>\n<h2>BigQuery\u3068\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3092\u9023\u643a\u3057\u3066SQL\u3092\u5b9f\u884c\u3059\u308b\u306b\u306f\uff1f<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>BigQuery\u3068\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3092\u9023\u643a\u3059\u308b\u3053\u3068\u3067\u3001\u30da\u30bf\u30d0\u30a4\u30c8\u898f\u6a21\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066SQL\u30af\u30a8\u30ea\u3092\u5b9f\u884c\u3057\u3001\u7d50\u679c\u3092\u76f4\u63a5\u53d6\u308a\u8fbc\u3081\u307e\u3059\u3002<\/b><\/span>\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u5206\u6790\u304c\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u304b\u3089\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3>Connected Sheets\u306e\u6d3b\u7528<\/h3>\n<div class=\"summary-box\">\n<div class=\"summary-box__title\"><span class=\"summary-box__title_tag\"><strong>BigQuery\u9023\u643a\u306e\u8a2d\u5b9a\u624b\u9806<\/strong><\/span><\/div>\n<ol class=\"summary-box__list summary-box__list--number\">\n<li>\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306e\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u300c\u30c7\u30fc\u30bf\u300d\u2192\u300c\u30c7\u30fc\u30bf\u30b3\u30cd\u30af\u30bf\u300d<\/li>\n<li>\u300cBigQuery\u306b\u63a5\u7d9a\u300d\u3092\u9078\u629e<\/li>\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u9078\u629e<\/li>\n<li>SQL\u30af\u30a8\u30ea\u3092\u8a18\u8ff0\u307e\u305f\u306f\u3001UI\u3067\u6761\u4ef6\u8a2d\u5b9a<\/li>\n<\/ol>\n<\/div>\n<h3>\u30ab\u30b9\u30bf\u30e0SQL\u30af\u30a8\u30ea\u306e\u5b9f\u884c<\/h3>\n<p>\u9ad8\u5ea6\u306a\u5206\u6790\u30af\u30a8\u30ea\u306e\u4f8b\uff1a<\/p>\n<p>SELECT<\/p>\n<p>DATE_TRUNC(order_date, MONTH) as month,<\/p>\n<p>product_category,<\/p>\n<p>SUM(revenue) as total_revenue,<\/p>\n<p>COUNT(DISTINCT customer_id) as unique_customers,<\/p>\n<p>AVG(order_value) as avg_order_value<\/p>\n<p>FROM `project.dataset.sales_data`<\/p>\n<p>WHERE order_date &gt;= &#8216;2025-01-01&#8217;<\/p>\n<p>GROUP BY month, product_category<\/p>\n<p>ORDER BY month DESC, total_revenue DESC<\/p>\n<h3>\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u5b9f\u884c\u306e\u8a2d\u5b9a<\/h3>\n<div class=\"summary-box\">\n<div class=\"summary-box__title\"><span class=\"summary-box__title_tag\"><strong>\u81ea\u52d5\u66f4\u65b0\u306e\u8a2d\u5b9a<\/strong><\/span><\/div>\n<ul class=\"summary-box__list summary-box__list\">\n<li>\u66f4\u65b0\u983b\u5ea6\uff1a\u6bce\u65e5\u3001\u6bce\u9031\u3001\u6bce\u6708<\/li>\n<li>\u5b9f\u884c\u6642\u523b\u306e\u6307\u5b9a<\/li>\n<li>\u30a8\u30e9\u30fc\u901a\u77e5\u306e\u8a2d\u5b9a<\/li>\n<\/ul>\n<\/div>\n<h2>SQL\u30af\u30a8\u30ea\u7d50\u679c\u3092\u6d3b\u7528\u3057\u305f\u9ad8\u5ea6\u306a\u5206\u6790\u30c6\u30af\u30cb\u30c3\u30af\u306f\uff1f<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>\u53d6\u5f97\u3057\u305fSQL\u30af\u30a8\u30ea\u7d50\u679c\u3092\u3001\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306e\u6a5f\u80fd\u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u9ad8\u5ea6\u306a\u5206\u6790\u3084\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u304c\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/b><\/span>\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h3>\u52d5\u7684\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306e\u4f5c\u6210<\/h3>\n<p>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306e\u69cb\u7bc9\uff1a<\/p>\n<p>function createDashboard() {<\/p>\n<p>const sheet = SpreadsheetApp.getActiveSheet();<\/p>\n<p>\/\/ SQL\u3067\u30c7\u30fc\u30bf\u53d6\u5f97<\/p>\n<p>const salesData = executeQuery();<\/p>\n<p>\/\/\u66f8\u304d\u8fbc\u3080\u30c7\u30fc\u30bf\u7bc4\u56f2\u306e\u53d6\u5f97<\/p>\n<p>const dataRange = sheet.getRange(1, 1, salesData.length, salesData[0].length);<\/p>\n<p>dataRange.setValues(salesData);<\/p>\n<p>\/\/ \u30d4\u30dc\u30c3\u30c8\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210<\/p>\n<p>const pivotTableRange = sheet.getRange(&#8220;G1&#8221;);<\/p>\n<p>const pivotTable = pivotTableRange.createPivotTable(dataRange);<\/p>\n<p>pivotTable.addRowGroup(1)\u00a0 \/\/ \u30ab\u30c6\u30b4\u30ea\u5225<\/p>\n<p>pivotTable.addColumnGroup(2)\u00a0 \/\/ \u6708\u5225<\/p>\n<p>pivotTable.addValue(3, SpreadsheetApp.PivotTableSummarizeFunction.SUM)}<\/p>\n<h3>\u6761\u4ef6\u4ed8\u304d\u66f8\u5f0f\u3067\u306e\u53ef\u8996\u5316<\/h3>\n<div class=\"summary-box\">\n<div class=\"summary-box__title\"><span class=\"summary-box__title_tag\"><strong>SQL\u30af\u30a8\u30ea\u7d50\u679c\u306e\u8996\u899a\u5316<\/strong><\/span><\/div>\n<ul class=\"summary-box__list summary-box__list\">\n<li>\u58f2\u4e0aTOP10\u3092\u30cf\u30a4\u30e9\u30a4\u30c8<\/li>\n<li>\u524d\u6708\u6bd4\u30de\u30a4\u30ca\u30b9\u3092\u8d64\u8868\u793a<\/li>\n<li>\u9054\u6210\u7387\u306b\u3088\u308b\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3<\/li>\n<\/ul>\n<\/div>\n<h3>ARRAYFORMULA\u95a2\u6570\u3068\u306e\u7d44\u307f\u5408\u308f\u305b<\/h3>\n<p>SQL\u30c7\u30fc\u30bf\u306e\u62e1\u5f35\u51e6\u7406\uff1a<\/p>\n<p>=ARRAYFORMULA(<\/p>\n<p>IF(QUERY_RESULT &gt; 10000,<\/p>\n<p>&#8220;\u512a\u826f\u9867\u5ba2&#8221;,<\/p>\n<p>&#8220;\u4e00\u822c\u9867\u5ba2&#8221;))<\/p>\n<h2>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u306f\uff1f<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092SQL\u3067\u6271\u3046\u969b\u306f\u3001\u30af\u30a8\u30ea\u306e\u6700\u9069\u5316\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u304c\u91cd\u8981\u3067\u3059\u3002<\/b><\/span>\u5b9f\u884c\u901f\u5ea6\u3092\u6539\u5584\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<h3>\u30af\u30a8\u30ea\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n<p>\u52b9\u7387\u7684\u306a\u30af\u30a8\u30ea\u4f5c\u6210\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u6700\u9069\u5316\u9805\u76ee<\/th>\n<th>\u60aa\u3044\u4f8b<\/th>\n<th>\u826f\u3044\u4f8b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5217\u306e\u9078\u629e<\/td>\n<td style=\"text-align: left;\">SELECT *<\/td>\n<td style=\"text-align: left;\">SELECT \u5fc5\u8981\u306a\u5217\u306e\u307f<\/td>\n<\/tr>\n<tr>\n<td>\u6761\u4ef6\u6307\u5b9a<\/td>\n<td style=\"text-align: left;\">WHERE\u5f8c\u3067\u7d5e\u8fbc\u307f<\/td>\n<td style=\"text-align: left;\">WHERE\u53e5\u3092\u5177\u4f53\u7684\u306b<\/td>\n<\/tr>\n<tr>\n<td>\u7d50\u5408\u9806\u5e8f<\/td>\n<td style=\"text-align: left;\">\u5927\u304d\u3044\u30c6\u30fc\u30d6\u30eb\u304b\u3089<\/td>\n<td style=\"text-align: left;\">\u5c0f\u3055\u3044\u30c6\u30fc\u30d6\u30eb\u304b\u3089<\/td>\n<\/tr>\n<tr>\n<td>\u96c6\u8a08<\/td>\n<td style=\"text-align: left;\">\u5168\u30c7\u30fc\u30bf\u53d6\u5f97\u5f8c\u306b\u96c6\u8a08<\/td>\n<td style=\"text-align: left;\">GROUP BY\u3067\u4e8b\u524d\u96c6\u8a08<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565<\/h3>\n<p>\u30c7\u30fc\u30bf\u66f4\u65b0\u983b\u5ea6\u306b\u5fdc\u3058\u305f\u8a2d\u8a08\uff1a<\/p>\n<p>function getCachedData() {<\/p>\n<p>const cache = CacheService.getScriptCache();<\/p>\n<p>let data = cache.get(&#8216;sql_data&#8217;);<\/p>\n<p>if (!data) {<\/p>\n<p>\/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u306a\u3044\u5834\u5408\u306fSQL\u5b9f\u884c<\/p>\n<p>data = executeQuery();<\/p>\n<p>\/\/ 1\u6642\u9593\u30ad\u30e3\u30c3\u30b7\u30e5<\/p>\n<p>cache.put(&#8216;sql_data&#8217;, JSON.stringify(data), 3600);<\/p>\n<p>} else {<\/p>\n<p>data = JSON.parse(data);}<\/p>\n<p>return data;}<\/p>\n<h3>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u5b9f\u88c5<\/h3>\n<p>\u5927\u91cf\u30c7\u30fc\u30bf\u306e\u5206\u5272\u51e6\u7406\uff1a<\/p>\n<p>function batchProcess() {<\/p>\n<p>const batchSize = 1000;<\/p>\n<p>let offset = 0;<\/p>\n<p>while (true) {<\/p>\n<p>const query = `<\/p>\n<p>SELECT * FROM large_table<\/p>\n<p>LIMIT ${batchSize}<\/p>\n<p>OFFSET ${offset}`;<\/p>\n<p>const result = executeQuery(query);<\/p>\n<p>if (result.length === 0) break;<\/p>\n<p>processData(result);<\/p>\n<p>offset += batchSize;<\/p>\n<p>\/\/ \u51e6\u7406\u9593\u9694\u3092\u8a2d\u3051\u308b<\/p>\n<p>Utilities.sleep(1000);}}<\/p>\n<h2>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u5b9f\u88c5\u65b9\u6cd5<\/h2>\n<p><span style=\"background-color: #ffff99;\"><b>SQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u5bfe\u7b56\u3084\u30a8\u30e9\u30fc\u51e6\u7406\u306f\u3001\u5b89\u5168\u306a\u30b7\u30b9\u30c6\u30e0\u904b\u7528\u306b\u4e0d\u53ef\u6b20\u3067\u3059\u3002<\/b><\/span>\u30d1\u30e9\u30e1\u30fc\u30bf\u5316\u30af\u30a8\u30ea\u306e\u4f7f\u7528\u3001\u5165\u529b\u5024\u306e\u691c\u8a3c\u3001\u9069\u5207\u306a\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306b\u3088\u308a\u3001\u30bb\u30ad\u30e5\u30a2\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u9023\u643a\u3092\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/p>\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf\u5316\u30af\u30a8\u30ea\u306e\u5b9f\u88c5\u4f8b\uff1a<\/p>\n<p>function safeQuery(customerId) {<\/p>\n<p>const conn = connectToDatabase();<\/p>\n<p>const stmt = conn.prepareStatement(<\/p>\n<p>&#8216;SELECT * FROM customers WHERE id = ?&#8217;);<\/p>\n<p>stmt.setInt(1, customerId);<\/p>\n<p>const rs = stmt.executeQuery();<\/p>\n<p>\/\/ \u7d50\u679c\u51e6\u7406}<\/p>\n<p>\u307e\u305f\u3001\u63a5\u7d9a\u60c5\u5831\u306f\u74b0\u5883\u5909\u6570\u3084\u30d7\u30ed\u30d1\u30c6\u30a3\u30b5\u30fc\u30d3\u30b9\u3067\u7ba1\u7406\u3057\u3001\u30b3\u30fc\u30c9\u306b\u76f4\u63a5\u8a18\u8ff0\u3057\u306a\u3044\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u5b9a\u671f\u7684\u306a\u6a29\u9650\u30ec\u30d3\u30e5\u30fc\u3068\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u76e3\u8996\u3082\u5b9f\u65bd\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<h2>\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067SQL\u3092\u6d3b\u7528\u3057\u3066\u9ad8\u5ea6\u306a\u30c7\u30fc\u30bf\u5206\u6790<\/h2>\n<p>Google\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067\u306f\u3001QUERY\u95a2\u6570\u3092\u4f7f\u3063\u305fSQL\u306e\u3088\u3046\u306a\u7c21\u6613\u7684\u306a\u5206\u6790\u304b\u3089\u3001Google Apps Script\u3092\u4f7f\u3063\u305f\u5916\u90e8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u3001BigQuery\u3068\u306e\u9023\u643a\u307e\u3067\u3001\u3055\u307e\u3056\u307e\u306a\u30ec\u30d9\u30eb\u3067SQL\u3092\u6d3b\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>QUERY\u95a2\u6570\u306f\u624b\u8efd\u306b\u96c6\u8a08\u3084\u62bd\u51fa\u3092\u884c\u3048\u308b\u4e00\u65b9\u3001GAS\u3084BigQuery\u3092\u4f7f\u3048\u3070\u696d\u52d9\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3084\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u5206\u6790\u3067\u304d\u307e\u3059\u3002\u3055\u3089\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u3084\u30d0\u30c3\u30c1\u51e6\u7406\u3092\u6d3b\u7528\u3059\u308c\u3070\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3082\u6700\u9069\u5316\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p>SQL\u306e\u77e5\u8b58\u3092\u6d3b\u304b\u3057\u3066\u3001\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3092\u30c7\u30fc\u30bf\u5206\u6790\u306e\u30c4\u30fc\u30eb\u3068\u3057\u3066\u6d3b\u7528\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3067SQL\uff08Structured Query Language\uff09\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u5927\u91cf\u306a\u30c7\u30fc\u30bf\u306e\u5206\u6790\u3084\u5916\u90e8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u306e\u9023\u643a\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002QUERY\u95a2\u6570\u306b\u3088\u308bSQL\u98a8\u306e\u69cb\u6587\u3067\u306e\u64cd\u4f5c\u304b\u3089\u3001G [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[51],"tags":[],"class_list":["post-21632","post","type-post","status-publish","format-standard","hentry","category-excel"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/posts\/21632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/comments?post=21632"}],"version-history":[{"count":10,"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/posts\/21632\/revisions"}],"predecessor-version":[{"id":21765,"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/posts\/21632\/revisions\/21765"}],"wp:attachment":[{"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/media?parent=21632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/categories?post=21632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/biz.moneyforward.com\/work-efficiency\/basic\/wp-json\/wp\/v2\/tags?post=21632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}