Я пытаюсь упорядочить таблицу по столбцу (Tavling), где был применен GROUP_CONCAT, однако я не могу упорядочить список так, чтобы он шел сверху вниз, начиная со строки, содержащей наибольшее количество результатов из функция GROUP_CONCAT.
Таким образом, в этом случае он должен начинаться со строки, содержащей 3 результата из функции GROUP_CONCAT, затем строк, содержащих 2 результата, затем 2 строк, содержащих один результат и, наконец, нулевое значение.
Желаемый результат:
+-------------------+---------------------------------------+----------+
| Spelare | Tavling | Kategori |
+-------------------+---------------------------------------+----------+
| Stellan Bengtsson | EM i dubbel, EM i dubbel, EM i singel | herr |
| Kjell Johansson | EM i dubbel, EM i dubbel | herr |
| Michael Maze | EM i singel | herr |
| Marie Svensson | EM i singel | dam |
| Ping Pong | NULL | okand |
+-------------------+---------------------------------------+----------+
Представление:
CREATE VIEW v_report AS
SELECT
s.namn AS "Spelare",
GROUP_CONCAT(t.namn) AS "Tavling",
s.kategori AS "Kategori"
FROM
spelare as s
LEFT OUTER JOIN medalj AS m ON s.id = m.spelare_id
LEFT OUTER JOIN tavling AS t ON m.tavling_id = t.id
GROUP BY
s.namn
ORDER BY
tavling DESC;
Текущий результат:
MySQL [exam]> SELECT * FROM v_report;
+-------------------+-------------------------------------+----------+
| Spelare | Tavling | Kategori |
+-------------------+-------------------------------------+----------+
| Stellan Bengtsson | EM i singel,EM i dubbel,EM i dubbel | herr |
| Michael Maze | EM i singel | herr |
| Marie Svensson | EM i singel | dam |
| Kjell Johansson | EM i dubbel,EM i dubbel | herr |
| Ping Pong | NULL | okand |
+-------------------+-------------------------------------+----------+
5 rows in set (0.001 sec)