{"id":7949,"date":"2020-01-07T21:48:55","date_gmt":"2020-01-08T05:48:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7949"},"modified":"2025-06-13T17:21:51","modified_gmt":"2025-06-14T00:21:51","slug":"simple-dataviz-with-n1ql-and-google-sheets","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/","title":{"rendered":"Simple dataviz with N1QL and Google Sheets."},"content":{"rendered":"<blockquote><p>Do whatever it takes to present the data to aid analysis and thinking.\u00a0 &#8212; Edward Tufte<\/p><\/blockquote>\n<p>How do you create graphs like these if you don&#8217;t already have some ready-made cool dataviz tool?<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-06-at-4.17.06-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8042\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-06-at-4.17.06-PM-300x208.png\" alt=\"\" width=\"705\" height=\"489\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-06-at-4.17.06-PM-300x208.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-06-at-4.17.06-PM-768x534.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-06-at-4.17.06-PM-20x14.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-06-at-4.17.06-PM.png 999w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/a><\/p>\n<p>You can run queries to wrangle the data to get the results. Often you want to present the data visually in pie charts, bubble charts, histograms and line graphs. If you have Tableau, Cognos, etc it&#8217;s easier to visualize. Otherwise, you&#8217;ll have to copy the results into google sheets or excel.\u00a0 \u00a0Cut and paste of the results to google sheets is difficult, due to formatting, header-row issues, etc.\u00a0 However, Couchbase Query Workbench makes it easy. Next to the query results, we have a <strong>copy<\/strong> icon that copies the output into a tabular form that you can paste into spreadsheets such as Google Sheets, Excel, etc.\u00a0 This facility is available in both query workbench and analytics query workbench.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-11.07.14-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-7951 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-11.07.14-AM-300x207.png\" alt=\"\" width=\"390\" height=\"269\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.07.14-AM-300x207.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.07.14-AM-1024x708.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.07.14-AM-768x531.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.07.14-AM-20x14.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.07.14-AM.png 1218w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Let&#8217;s look at some sample data and charts.<\/p>\n<ol>\n<li>Calculate the types of documents and their count.<\/li>\n<\/ol>\n<p>Here&#8217;s the query on the travel-sample dataset shipped with Couchbase.\u00a0 Click on the image to see the GIF animation.<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\" title=\"Query\">SELECT type,\r\n       COUNT(1) typecount\r\nFROM `travel-sample`\r\nGROUP BY type\r\nORDER BY typecount<\/pre>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:default decode:true\" title=\"results\">type\t   typecount\r\n\"airline\"       187\r\n\"hotel\"\t        917\r\n\"airport\"      1968\r\n\"landmark\"     4495\r\n\"route\"       24024\r\n<\/pre>\n<p>Here&#8217;s the piechart created for the data. This can be easily customized for color, data display, various labels, and legends.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-11.33.40-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-7952 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-11.33.40-AM-300x182.png\" alt=\"\" width=\"508\" height=\"308\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.33.40-AM-300x182.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.33.40-AM-1024x621.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.33.40-AM-768x466.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.33.40-AM-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.33.40-AM.png 1184w\" sizes=\"auto, (max-width: 508px) 100vw, 508px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Click on the image to see the GIF animation on how to get the results to google sheets to get the charts in a second.<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/dataviz1.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-7950 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/dataviz1-300x207.gif\" alt=\"\" width=\"634\" height=\"437\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/dataviz1-300x207.gif 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/dataviz1-1024x708.gif 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/dataviz1-768x531.gif 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/dataviz1-20x14.gif 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/dataviz1-1320x912.gif 1320w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>2. Task:\u00a0 Find the top 10 cities with the most number of hotels.<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:mysql decode:true \" title=\"Query\">SELECT country,\r\n       city,\r\n       COUNT(1) hotelcount\r\nFROM `travel-sample`\r\nWHERE type = 'hotel'\r\nGROUP BY country,\r\n         city\r\nORDER BY hotelcount DESC\r\nLIMIT 10<\/pre>\n<p>Results:<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:vim decode:true\" title=\"Results from the query\">city                country        hotelcount\r\n\"San Francisco\" \"United States\"      132\r\n\"London\"        \"United Kingdom\"      67\r\n\"Paris\"         \"France\"              64\r\n\"San Diego\"     \"United States\"       48\r\n\"Birmingham\"    \"United Kingdom\"      36\r\n\"Los Angeles\"   \"United States\"       35\r\n                \"United Kingdom\"      23\r\n\"Santa Monica\"  \"United States\"       14\r\n\"Malibu\"        \"United States\"       12\r\n\"Edinburgh\"     \"United Kingdom\"      10\r\n<\/pre>\n<p>The only customization to the histogram here is to add the data labels to show the actual number of hotels.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-11.56.38-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-7953 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-11.56.38-AM-300x185.png\" alt=\"\" width=\"525\" height=\"323\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.56.38-AM-300x185.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.56.38-AM-1024x630.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.56.38-AM-768x473.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.56.38-AM-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-11.56.38-AM.png 1196w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>2. Task:\u00a0 Find the top 5 cities with the most number of hotels with &#8220;gardens&#8221; in the review<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\" title=\"Query\">SELECT city,\r\n       COUNT(1) hotelcount\r\nFROM `travel-sample`\r\nWHERE type = 'hotel'\r\n    AND ANY r IN reviews SATISFIES search(r.content, \"garden\") END\r\nGROUP BY city\r\nORDER BY hotelcount DESC\r\nLIMIT 5;<\/pre>\n<pre class=\"font:droid-sans-mono lang:default decode:true\">city\t    hotelcount\r\n\"Paris\"\t       10\r\n\t        5\r\n\"San Francisco\"\t5\r\n\"San Diego\"\t4\r\n\"Edinburgh\"\t3\r\n<\/pre>\n<p>Simply choose the &#8220;Doughnut piechart&#8221; and add the labels.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-12.24.55-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-7954 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/Screen-Shot-2019-12-22-at-12.24.55-PM-300x185.png\" alt=\"\" width=\"490\" height=\"301\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-12.24.55-PM-300x185.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-12.24.55-PM-1024x632.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-12.24.55-PM-768x474.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-12.24.55-PM-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/Screen-Shot-2019-12-22-at-12.24.55-PM.png 1190w\" sizes=\"auto, (max-width: 490px) 100vw, 490px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>6. Bubble charts require you to create the percentage value for each row. The window function <a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/windowfun.html#fn-window-ratio-to-report\">RATIO_TO_REPORT()<\/a> help you to do that easily.\u00a0 Once you have your query, creating a bubble<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:2 whitespace-after:2 lang:mysql decode:true\">SELECT country, city, \r\n       SUM(ARRAY_SUM(reviews[*].ratings[*].Location)) \/ COUNT(1) city_avglocation,\r\n       SUM(ARRAY_SUM(reviews[*].ratings[*].Service)) \/ COUNT(1) city_avgservice,\r\n       RATIO_TO_REPORT(COUNT(1)) OVER(partition by country) * 100 ratio_val,\r\n       (TO_STR(ROUND(RATIO_TO_REPORT(COUNT(1)) OVER(partition by country) * 100, 0)) || \"%\" ) AS ratio_percent \r\nFROM `travel-sample`\r\nWHERE type = 'hotel'\r\ngroup by country, city\r\norder by ratio_val desc, city_avgservice desc, city_avgvalue desc\r\nLIMIT 10<\/pre>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:default decode:true \">city           city_avglocation    city_avgservice\tcountry\tratio_percent\tratio_val\r\n\"Paris\"           13.75\t15.421875\t\"France\"\t\"46%\"\t45.714285714285715\r\n\"San Francisco\"\t15.583333333333334\t16.71969696969697\t\"United States\"\t\"37%\"\t36.56509695290859\r\n\"London\"\t11.567164179104477\t15.746268656716419\t\"United Kingdom\"\t\"16%\"\t16.105769230769234\r\n\"San Diego\"\t15.583333333333334\t16.729166666666668\t\"United States\"\t\"13%\"\t13.29639889196676\r\n\"Los Angeles\"\t11.971428571428572\t12.628571428571428\t\"United States\"\t\"10%\"\t9.695290858725762\r\n\"Birmingham\"\t14.666666666666666\t18.083333333333332\t\"United Kingdom\"\t\"9%\"\t8.653846153846153\r\n\"Avignon\"\t10.375\t13.375\t\"France\"\t\"6%\"\t5.714285714285714\r\n\t16.91304347826087\t17.782608695652176\t\"United Kingdom\"\t\"6%\"\t5.528846153846153\r\n\"Chamonix-Mont-Blanc\"\t18\t29.142857142857142\t\"France\"\t\"5%\"\t5\r\n\"Nice\"\t11.571428571428571\t15\t\"France\"\t\"5%\"\t5\r\n<\/pre>\n<div id=\"attachment_8030\" style=\"width: 566px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-05-at-2.13.10-PM.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8030\" class=\"wp-image-8030\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-05-at-2.13.10-PM-300x187.png\" alt=\"\" width=\"556\" height=\"346\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-2.13.10-PM-300x187.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-2.13.10-PM-1024x637.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-2.13.10-PM-768x478.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-2.13.10-PM-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-2.13.10-PM.png 1202w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/a><p id=\"caption-attachment-8030\" class=\"wp-caption-text\">Bubble chart showing avg rating by location, etc. The size of the bubble shows the %ge of hotels represented within the respective country.<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>This animated GIF shows how to create this chart.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/bubble-1.gif\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8031 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/bubble-1-300x158.gif\" alt=\"\" width=\"418\" height=\"220\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/bubble-1-300x158.gif 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/bubble-1-1024x539.gif 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/bubble-1-768x404.gif 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/bubble-1-1536x808.gif 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/bubble-1-20x11.gif 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/bubble-1-1320x695.gif 1320w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>7. Creating geo charts is pretty easy in google charts since it recognizes the countries and cities. You don&#8217;t need to deal with latlongs.<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:default decode:true \">Select country, count(1) num_hotels\r\nfrom `travel-sample`\r\nwhere type = 'airline'<\/pre>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:default decode:true \">country\t          num_hotels\r\n\"United States\"\t    127\r\n\"United Kingdom\"     39\r\n\"France\"\t     21\r\n<\/pre>\n<p>With the data above, simply paste into a google sheet and then create a geo chart.\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-05-at-6.54.22-PM.png\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8032 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-05-at-6.54.22-PM-300x170.png\" alt=\"\" width=\"625\" height=\"353\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-6.54.22-PM-300x170.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-6.54.22-PM-20x11.png 20w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>8. You can also create a geo chart with markers (proportional bubbles), again, using the RATIO_TO_REPORT() window functions.<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:default decode:true \">SELECT country,\r\n       COUNT(1) AS num_hotels,\r\n       (TOSTR(ROUND(RATIO_TO_REPORT(COUNT(1)) OVER () * 100,0)) || \"%\") AS hotels_percent \r\nFROM `travel-sample`\r\nWHERE type = 'hotel'\r\nGROUP BY country;<\/pre>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:default decode:true\">country           hotels_percent      num_hotels\r\n\"United Kingdom\"  \"45%\"                 416\r\n\"France\"          \"15%\"\t                140\r\n\"United States\"   \"39%\"                 361\r\n<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8033 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM-300x165.png\" alt=\"\" width=\"782\" height=\"430\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM-300x165.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM-1024x564.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM-768x423.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM-1536x846.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM-1320x727.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.08.47-PM.png 1768w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/a><\/p>\n<p>You can also customize the charts to the region, for example, the United States.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8045 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM-300x128.png\" alt=\"\" width=\"567\" height=\"242\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM-300x128.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM-1024x436.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM-768x327.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM-1536x654.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM-1320x562.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-07-at-9.40.30-PM.png 1934w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Finally, the query to generate the first graphic of this blog:<\/p>\n<pre class=\"theme:github font:droid-sans-mono font-size:15 line-height:17 whitespace-before:1 whitespace-after:1 lang:default decode:true\">SELECT country, city,\r\n       SUM(ARRAY_SUM(reviews[*].ratings[*].Location)) \/ COUNT(1) city_avglocation,\r\n       SUM(ARRAY_SUM(reviews[*].ratings[*].Service)) \/ COUNT(1) city_avgservice,\r\n       SUM(ARRAY_SUM(reviews[*].ratings[*].Overall)) \/ COUNT(1) city_avgoverall,\r\n       SUM(ARRAY_SUM(reviews[*].ratings[*].Rooms)) \/ COUNT(1) city_avgrooms,\r\n       SUM(ARRAY_SUM(reviews[*].ratings[*].`Value`)) \/ COUNT(1) city_avgvalue\r\nFROM `travel-sample`\r\nWHERE type = 'hotel'\r\ngroup by country, city\r\norder by city_avgservice desc, city_avgvalue desc\r\nLIMIT 50<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do whatever it takes to present the data to aid analysis and thinking.\u00a0 &#8212; Edward Tufte How do you create graphs like these if you don&#8217;t already have some ready-made cool dataviz tool? You can run queries to wrangle the [&hellip;]<\/p>\n","protected":false},"author":55,"featured_media":8034,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2294,1812],"tags":[1261],"ppma_author":[8929],"class_list":["post-7949","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","category-n1ql-query","tag-json"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Simple dataviz with N1QL and Google Sheets. - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simple dataviz with N1QL and Google Sheets.\" \/>\n<meta property=\"og:description\" content=\"Do whatever it takes to present the data to aid analysis and thinking.\u00a0 &#8212; Edward Tufte How do you create graphs like these if you don&#8217;t already have some ready-made cool dataviz tool? You can run queries to wrangle the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-08T05:48:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:21:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1844\" \/>\n\t<meta property=\"og:image:height\" content=\"928\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Keshav Murthy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rkeshavmurthy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keshav Murthy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/\"},\"author\":{\"name\":\"Keshav Murthy\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\"},\"headline\":\"Simple dataviz with N1QL and Google Sheets.\",\"datePublished\":\"2020-01-08T05:48:55+00:00\",\"dateModified\":\"2025-06-14T00:21:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/\"},\"wordCount\":515,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png\",\"keywords\":[\"JSON\"],\"articleSection\":[\"Couchbase Analytics\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/\",\"name\":\"Simple dataviz with N1QL and Google Sheets. - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png\",\"datePublished\":\"2020-01-08T05:48:55+00:00\",\"dateModified\":\"2025-06-14T00:21:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png\",\"width\":1844,\"height\":928},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Simple dataviz with N1QL and Google Sheets.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\",\"name\":\"Keshav Murthy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"caption\":\"Keshav Murthy\"},\"description\":\"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India, holds eleven US patents and has four US patents pending.\",\"sameAs\":[\"https:\/\/blog.planetnosql.com\/\",\"https:\/\/x.com\/rkeshavmurthy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/keshav-murthy\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Simple dataviz with N1QL and Google Sheets. - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/","og_locale":"en_US","og_type":"article","og_title":"Simple dataviz with N1QL and Google Sheets.","og_description":"Do whatever it takes to present the data to aid analysis and thinking.\u00a0 &#8212; Edward Tufte How do you create graphs like these if you don&#8217;t already have some ready-made cool dataviz tool? You can run queries to wrangle the [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-01-08T05:48:55+00:00","article_modified_time":"2025-06-14T00:21:51+00:00","og_image":[{"width":1844,"height":928,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png","type":"image\/png"}],"author":"Keshav Murthy","twitter_card":"summary_large_image","twitter_creator":"@rkeshavmurthy","twitter_misc":{"Written by":"Keshav Murthy","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/"},"author":{"name":"Keshav Murthy","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636"},"headline":"Simple dataviz with N1QL and Google Sheets.","datePublished":"2020-01-08T05:48:55+00:00","dateModified":"2025-06-14T00:21:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/"},"wordCount":515,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png","keywords":["JSON"],"articleSection":["Couchbase Analytics","SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/","url":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/","name":"Simple dataviz with N1QL and Google Sheets. - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png","datePublished":"2020-01-08T05:48:55+00:00","dateModified":"2025-06-14T00:21:51+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/Screen-Shot-2020-01-05-at-7.21.07-PM.png","width":1844,"height":928},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/simple-dataviz-with-n1ql-and-google-sheets\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Simple dataviz with N1QL and Google Sheets."}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636","name":"Keshav Murthy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4","url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","caption":"Keshav Murthy"},"description":"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India, holds eleven US patents and has four US patents pending.","sameAs":["https:\/\/blog.planetnosql.com\/","https:\/\/x.com\/rkeshavmurthy"],"url":"https:\/\/www.couchbase.com\/blog\/author\/keshav-murthy\/"}]}},"authors":[{"term_id":8929,"user_id":55,"is_guest":0,"slug":"keshav-murthy","display_name":"Keshav Murthy","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","author_category":"","last_name":"Murthy","first_name":"Keshav","job_title":"","user_url":"https:\/\/blog.planetnosql.com\/","description":"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India,  holds ten US patents and has three US patents pending."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=7949"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/7949\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/8034"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=7949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=7949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=7949"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=7949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}