title: MySQL query to show data separated by comma with group by different columns
body: <p>I have a MySQL table where I have stored all of users searches. So the table looks something like this</p>
  <pre><code>CREATE TABLE `users_search_activity` (
    `ID` bigint(20) UNSIGNED NOT NULL,
    `user_id` int(11) NOT NULL,
    `country_id` int(11) NOT NULL,
    `search_keywords` text COLLATE utf8mb4_unicode_ci NOT NULL,
    `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  
  --
  -- Dumping data for table `users_search_activity`
  --
  
  INSERT INTO `users_search_activity` (`ID`, `user_id`, `country_id`, `search_keywords`, `date`) VALUES
  (1, 132, 2, 'xavie', '2021-07-13 08:20:37'),
  (2, 132, 6, 'xavier', '2021-07-13 08:21:38'),
  (3, 132, 5, 'xavier ins', '2021-07-13 08:21:39'),
  (4, 132, 4, 'xavier ins', '2021-07-13 08:21:39'),
  (5, 131, 9, 'xavier ins',  '2021-07-13 08:22:12'),
  (6, 132, 7, 'xavier ins', '2021-07-13 08:22:25'),
  (7, 132, 8, 'xavier ins', '2021-07-13 09:24:43'),
  (8, 132, 6, 'xavier ins', '2021-07-13 09:24:45'),
  (9, 132, 4, 'xavier insa', '2021-07-13 09:24:47'),
  (10, 131, 5, 'ins', '2021-07-13 09:24:54'),
  (11, 132, 3, 'ins', '2021-07-13 09:24:54'),
  (12, 132, 2, 'ins', '2021-07-13 09:24:58'),
  (13, 132, 9, 'ins', '2021-07-13 09:24:59'),
  (14, 132, 0, 'ins', '2021-07-13 09:25:00'),
  (15, 132, 0, 'ins', '2021-07-13 09:25:02'),
  (16, 132, 0, 'inst', '2021-07-13 09:58:20'),
  (17, 132, 0, 'inst', '2021-07-04 09:58:25'),
  (18, 132, 0, 'inst', '2021-07-07 09:58:25'),
  (19, 132, 0, 'inst', '2021-07-11 09:58:26'),
  (20, 1, 12, 'University Business Academy in Novi Sad', '2021-07-14 10:16:33');
  
  --
  -- Indexes for dumped tables
  --
  
  --
  -- Indexes for table `users_search_activity`
  --
  ALTER TABLE `users_search_activity`
    ADD PRIMARY KEY (`ID`);
  
  --
  -- AUTO_INCREMENT for dumped tables
  --
  
  --
  -- AUTO_INCREMENT for table `users_search_activity`
  --
  ALTER TABLE `users_search_activity`
    MODIFY `ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=20;
  COMMIT; 
  </code></pre>
  <p>Now I want to make some query from where I can get the data group by country_id and date.
  So for that I have made my query like this</p>
  <pre><code>WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY country_id, DATE(date) ORDER BY ID) rn, COUNT(*) OVER (PARTITION BY country_id, DATE(date)) cnt FROM users_search_activity ) SELECT ID, cnt AS count, search_keywords, user_id, country_id, DATE(date) as date FROM cte WHERE rn = 1;
  </code></pre>
  <p>Here its working fine except the search_keywords. It is only showing single search_keywords. I want to show them all one by one separated by comma for the given date and country_id.</p>
  <p>So can someone tell me how to do that? Any help or suggestions would be really appreciable.
  Thanks,</p>
  <p>The output should be something like this</p>
  <pre><code>count  user_id  country_id  date         search_keywords
   1     132       4          2021-07-13  xavier ins, xavier insa
  </code></pre>