{"id":6951,"date":"2023-06-27T00:00:00","date_gmt":"2023-06-27T04:00:00","guid":{"rendered":"https:\/\/www.sisense.com\/listagg-group-concat-and-string-agg\/"},"modified":"2024-10-31T22:11:13","modified_gmt":"2024-11-01T02:11:13","slug":"concatenating-rows-in-redshift-postgres-mysql","status":"publish","type":"post","link":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/","title":{"rendered":"Concatenating rows in Redshift, Postgres, &amp; MySQL"},"content":{"rendered":"<p>Sometimes it\u2019s helpful to look at an aggregated overview of many rows. With numeric columns, it\u2019s easy to sum or average many values, but for string columns we need something different. We can concatenate strings from multiple rows with concatenating aggregations.<\/p>\n<p>Imagine we have a table of salespeople and the customers they manage:<\/p>\n<figure class=\"wp-block-image fancybox\"><img decoding=\"async\" class=\"wp-image-80002\" src=\"\/wp-content\/uploads\/2024\/07\/image-01-22.png\" alt=\"Salespeople table\" \/><\/figure>\n<p>We can compact this and make it more human-readable by flattening the many rows per salesperson into a single row:<\/p>\n<figure class=\"wp-block-image fancybox\"><img decoding=\"async\" class=\"wp-image-80008\" src=\"\/wp-content\/uploads\/2024\/07\/image-02-22.png\" alt=\"Single row table\" \/><\/figure>\n<p>This can be done with any concatenating aggregation. There\u2019s group_concat in MySQL, string_agg in Postgres, and listagg in redshift.<\/p>\n<p>Let\u2019s first look at how to use each of these functions. Then, we\u2019ll cover a few tricks with concatenating aggregations.<\/p>\n<h2 id=\"redshift-listagg\" class=\"wp-block-heading\">Redshift listagg<\/h2>\n<p>Redshift recently added listagg, and a corresponding <a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/r_WF_LISTAGG.html\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"(opens in a new tab)\">window function version<\/a>. The basic usage is:<\/p>\n<pre class=\"wp-block-code\"><code>select \r\n  salesperson,\r\n  listagg(customer, ', ') \r\n    within group (order by contract_size desc)\r\nfrom customers\r\ngroup by 1<\/code><\/pre>\n<p>The within group clause is an uncommon bit of syntax, but all it does is allow for ordering the rows used in an aggregation. Here, it orders all of the customers by contract size, then listagg concatenates their names with a comma separator.<\/p>\n<h2 id=\"postgres-string-agg\" class=\"wp-block-heading\">Postgres string_agg<\/h2>\n<pre class=\"wp-block-code\"><code>select \r\n  salesperson,\r\n  string_agg(customer , ', ' order by contract_size desc)\r\nfrom customers\r\ngroup by 1<\/code><\/pre>\n<p>Postgres has a robust set of aggregation functions, and you can similarly aggregate multiple rows with array_agg and json_agg.<\/p>\n<p>By combining array_to_string with array_agg, you can duplicate the behavior of string_agg.<\/p>\n<h2 id=\"mysql-group-concat\" class=\"wp-block-heading\">MySQL group_concat<\/h2>\n<pre class=\"wp-block-code\"><code>select \r\n  salesperson,\r\n  group_concat(customer \r\n               order by contract_size desc\r\n               separator ',')\r\nfrom customers\r\ngroup by 1<\/code><\/pre>\n<p>MySQL supports an optional distinct operator in group_concat:<\/p>\n<pre class=\"wp-block-code\"><code>select group_concat(distinct customer)\r\nfrom customers<\/code><\/pre>\n<p>MySQL has a relatively low cap of 1024 characters of the length of a group_concat result, but it can be increased by changing the group_concat_max_len system variable.<\/p>\n<h2 id=\"sql-server-workarounds\" class=\"wp-block-heading\">SQL Server workarounds<\/h2>\n<p>There\u2019s no concatenating aggregation in SQL Server, but there are <a href=\"https:\/\/stackoverflow.com\/questions\/17591490\/how-to-make-a-query-with-group-concat-in-sql-server\/17591536#17591536\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"(opens in a new tab)\">workarounds based on XML path<\/a>.<\/p>\n<h2 id=\"compound-concatenation\" class=\"wp-block-heading\">Compound concatenation<\/h2>\n<p>While the customer names are nice, it would be better if we could include contract size in our collapsed table:<\/p>\n<figure class=\"wp-block-image fancybox\"><img decoding=\"async\" class=\"wp-image-80014\" src=\"\/wp-content\/uploads\/2024\/07\/image-03-18.png\" alt=\"Top customers table\" \/><\/figure>\n<p>For the remaining examples, we\u2019ll use Redshift\u2019s dialect.<\/p>\n<p>Because these concatenating aggregations concatenate expressions, and not just column names, we can easily accomplish this by pre-concatenating the customer name and contract size:<\/p>\n<pre class=\"wp-block-code\"><code>select \r\n  salesperson,\r\n  listagg(customer || ' $' || contract_size, ', ') \r\n    within group (order by contract_size desc)\r\nfrom customers\r\ngroup by 1<\/code><\/pre>\n<h2 id=\"concatenating-a-limited-number-of-values\" class=\"wp-block-heading\">Concatenating a limited number of values<\/h2>\n<p>In a real database, concatenating all the rows for a given group will often create a string of unwieldy length. If we use a subquery to limit the number of rows in a given group first, then our final concatenation will be more readable:<\/p>\n<pre class=\"wp-block-code\"><code>with numbered_customers as (\r\n  select \r\n    *, \r\n    row_number() over (partition by salesperson \r\n                        order by contract_size desc)\r\n  from customers\r\n)\r\nselect \r\n  salesperson,\r\n  listagg(customer || ' $' || contract_size, ', ') \r\n    within group (order by contract_size desc)\r\nfrom numbered_customers\r\nwhere row_number &lt;= 3\r\ngroup by 1<\/code><\/pre>\n<p>We first declare numbered_customers, which numbers every customer per salesperson, starting with the largest contracts. Then we concatenate only the first three rows for each salesperson. Nice and tidy.<\/p>\n<h2 id=\"happy-concatenating-\" class=\"wp-block-heading\">Happy concatenating!<\/h2>\n<p>We hope you learned a few tricks for formatting SQL tables for human reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sometimes it\u2019s helpful to look at an aggregated overview of many rows. With numeric columns, it\u2019s easy to sum or average many values, but for string columns we need something different. We can concatenate strings from multiple rows with concatenating&#8230;<\/p>\n","protected":false},"author":4,"featured_media":7156,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[44],"tags":[472],"application":[10],"buyer-role":[],"buyer-stage":[],"department":[],"industry":[],"topic":[63],"class_list":["post-6951","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-talk","tag-data-team","application-cloud-data-teams","topic-hack-your-analyst-skillset"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.5 (Yoast SEO v23.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Concatenating Rows in Redshift, Postgres, &amp; MySQL | Sisense<\/title>\n<meta name=\"description\" content=\"With numeric columns it\u2019s easy to sum or average many values, but for string columns we need something different.\" \/>\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.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Concatenating rows in Redshift, Postgres, &amp; MySQL\" \/>\n<meta property=\"og:description\" content=\"Sometimes it\u2019s helpful to look at an aggregated overview of many rows. With numeric columns, it\u2019s easy to sum or average many values, but for string\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/\" \/>\n<meta property=\"og:site_name\" content=\"Sisense\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-27T04:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T02:11:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sisense Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sisense\" \/>\n<meta name=\"twitter:site\" content=\"@sisense\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sisense Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/\"},\"author\":{\"name\":\"Sisense Team\",\"@id\":\"https:\/\/www.sisense.com\/#\/schema\/person\/e70aa3a7bbc471e4b7b8c5a7d2b36115\"},\"headline\":\"Concatenating rows in Redshift, Postgres, &amp; MySQL\",\"datePublished\":\"2023-06-27T04:00:00+00:00\",\"dateModified\":\"2024-11-01T02:11:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/\"},\"wordCount\":438,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sisense.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg\",\"keywords\":[\"data team\"],\"articleSection\":[\"Tech Talk\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/\",\"url\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/\",\"name\":\"Concatenating Rows in Redshift, Postgres, & MySQL | Sisense\",\"isPartOf\":{\"@id\":\"https:\/\/www.sisense.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg\",\"datePublished\":\"2023-06-27T04:00:00+00:00\",\"dateModified\":\"2024-11-01T02:11:13+00:00\",\"description\":\"With numeric columns it\u2019s easy to sum or average many values, but for string columns we need something different.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage\",\"url\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg\",\"contentUrl\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg\",\"width\":1200,\"height\":628,\"caption\":\"featured concatenating blog min 2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sisense.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Concatenating rows in Redshift, Postgres, &amp; MySQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sisense.com\/#website\",\"url\":\"https:\/\/www.sisense.com\/\",\"name\":\"Sisense\",\"description\":\"Build your business with anywhere-analytics\",\"publisher\":{\"@id\":\"https:\/\/www.sisense.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sisense.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.sisense.com\/#organization\",\"name\":\"Sisense\",\"url\":\"https:\/\/www.sisense.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg\",\"contentUrl\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg\",\"width\":1200,\"height\":600,\"caption\":\"Sisense\"},\"image\":{\"@id\":\"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/sisense\",\"https:\/\/www.linkedin.com\/company\/sisense\",\"https:\/\/github.com\/sisense\/\"],\"description\":\"Sisense accelerates product innovation through AI\/ML capabilities. Our global analytics platform lets customers drive better, faster decisions for their business and end users.\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sisense.com\/#\/schema\/person\/e70aa3a7bbc471e4b7b8c5a7d2b36115\",\"name\":\"Sisense Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sisense.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/213e415f47bc3c7f0155a0755b1cea8c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/213e415f47bc3c7f0155a0755b1cea8c?s=96&d=mm&r=g\",\"caption\":\"Sisense Team\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Concatenating Rows in Redshift, Postgres, & MySQL | Sisense","description":"With numeric columns it\u2019s easy to sum or average many values, but for string columns we need something different.","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.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/","og_locale":"en_US","og_type":"article","og_title":"Concatenating rows in Redshift, Postgres, &amp; MySQL","og_description":"Sometimes it\u2019s helpful to look at an aggregated overview of many rows. With numeric columns, it\u2019s easy to sum or average many values, but for string","og_url":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/","og_site_name":"Sisense","article_published_time":"2023-06-27T04:00:00+00:00","article_modified_time":"2024-11-01T02:11:13+00:00","og_image":[{"width":1200,"height":600,"url":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg","type":"image\/jpeg"}],"author":"Sisense Team","twitter_card":"summary_large_image","twitter_creator":"@sisense","twitter_site":"@sisense","twitter_misc":{"Written by":"Sisense Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#article","isPartOf":{"@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/"},"author":{"name":"Sisense Team","@id":"https:\/\/www.sisense.com\/#\/schema\/person\/e70aa3a7bbc471e4b7b8c5a7d2b36115"},"headline":"Concatenating rows in Redshift, Postgres, &amp; MySQL","datePublished":"2023-06-27T04:00:00+00:00","dateModified":"2024-11-01T02:11:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/"},"wordCount":438,"commentCount":0,"publisher":{"@id":"https:\/\/www.sisense.com\/#organization"},"image":{"@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg","keywords":["data team"],"articleSection":["Tech Talk"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/","url":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/","name":"Concatenating Rows in Redshift, Postgres, & MySQL | Sisense","isPartOf":{"@id":"https:\/\/www.sisense.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage"},"image":{"@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg","datePublished":"2023-06-27T04:00:00+00:00","dateModified":"2024-11-01T02:11:13+00:00","description":"With numeric columns it\u2019s easy to sum or average many values, but for string columns we need something different.","breadcrumb":{"@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#primaryimage","url":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg","contentUrl":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/2015\/11\/10161422\/featured-concatenating-blog-min-2.jpg","width":1200,"height":628,"caption":"featured concatenating blog min 2"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sisense.com\/blog\/concatenating-rows-in-redshift-postgres-mysql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sisense.com\/"},{"@type":"ListItem","position":2,"name":"Concatenating rows in Redshift, Postgres, &amp; MySQL"}]},{"@type":"WebSite","@id":"https:\/\/www.sisense.com\/#website","url":"https:\/\/www.sisense.com\/","name":"Sisense","description":"Build your business with anywhere-analytics","publisher":{"@id":"https:\/\/www.sisense.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sisense.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.sisense.com\/#organization","name":"Sisense","url":"https:\/\/www.sisense.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg","contentUrl":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg","width":1200,"height":600,"caption":"Sisense"},"image":{"@id":"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/sisense","https:\/\/www.linkedin.com\/company\/sisense","https:\/\/github.com\/sisense\/"],"description":"Sisense accelerates product innovation through AI\/ML capabilities. Our global analytics platform lets customers drive better, faster decisions for their business and end users."},{"@type":"Person","@id":"https:\/\/www.sisense.com\/#\/schema\/person\/e70aa3a7bbc471e4b7b8c5a7d2b36115","name":"Sisense Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sisense.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/213e415f47bc3c7f0155a0755b1cea8c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/213e415f47bc3c7f0155a0755b1cea8c?s=96&d=mm&r=g","caption":"Sisense Team"}}]}},"_links":{"self":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/posts\/6951"}],"collection":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/comments?post=6951"}],"version-history":[{"count":1,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/posts\/6951\/revisions"}],"predecessor-version":[{"id":23243,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/posts\/6951\/revisions\/23243"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/media\/7156"}],"wp:attachment":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/media?parent=6951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/categories?post=6951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/tags?post=6951"},{"taxonomy":"application","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/application?post=6951"},{"taxonomy":"buyer-role","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/buyer-role?post=6951"},{"taxonomy":"buyer-stage","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/buyer-stage?post=6951"},{"taxonomy":"department","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/department?post=6951"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/industry?post=6951"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/topic?post=6951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}