группа конкатат поле на основе 2 одинаковых данных в другом поле - PullRequest
2 голосов
/ 12 марта 2019

Учитывая эту таблицу,

+----+------------------+-----------+----------+
| id | Doctor name      | firsttime | lasttime |
+----+------------------+-----------+----------+
|  1 | Dr. Abdurahman   | 12:00:00  | 21:00:00 |
|  2 | Dr. Sultan Hamid | 12:00:00  | 21:00:00 |
|  3 | Dr. Susanti      | 12:00:00  | 21:00:00 |
|  4 | Dr. Siparman     | 12:00:00  | 21:00:00 |
|  5 | Dr. Ramah        | 12:00:00  | 21:00:00 |
|  6 | Drs. Susanto     | 13:00:00  | 22:00:00 |
|  7 | Dr. Budiarjo     | 13:00:00  | 22:00:00 |
|  8 | Dr. Antonius     | 13:00:00  | 22:00:00 |
|  9 | Dr. Wahid Bahyu  | 13:00:00  | 22:00:00 |
+----+------------------+-----------+----------+

expected
+----+--------------------------------------------+-----------+----------+
| id | Doctor name                                | firsttime | lasttime |
+----+--------------------------------------------+-----------+----------+
|  1 | Dr. Abdurahman, Dr. Sultan Hamid, etc      | 12:00:00  | 21:00:00 |
|  2 | Drs. Susanto, Dr. Budiarjo, etc            | 13:00:00  | 22:00:00 |
+----+--------------------------------------------+-----------+----------+

Я ожидаю, что выберу таблицу на основе первого и последнего раза с групповым конкататом на имя доктора. Таким образом, если есть такая же первая дата и последняя дата, она будет включена в группу concat

Примечание: первая и последняя дата случайны, игнорируйте и т. Д., Я хочу указать полное имя доктора

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

использование GROUP_CONCAT

SELECT firstdate,lastdate,
    GROUP_CONCAT(doctorname)
FROM
    table group by firstdate,lastdate
1 голос
/ 12 марта 2019

Или вы можете использовать функцию STRING_AGG ():

SELECT STRING_AGG(Doctor name, ', ') AS Doctor name, 
       firsttime, 
       lasttime 
FROM table 
GROUP BY firstdate, lastdate;
...