GROUP_CONCAT, CONCAT a funkcja agregująca SUM().

0

Witam,

borykam się z problemem, mianowicie nie działa GROUP_CONCAT, jeśli dany użytkownik po zsumowaniu ma taką samą liczbę punktów, jak ktoś inny to powinni być w tym samym rekordzie.
Podgląd:

SELECT
  GROUP_CONCAT(DISTINCT CONCAT(u.id,';', u.username) SEPARATOR ', ') AS users,
  a.category,
  (SELECT SUM(points) FROM `annon` WHERE uid = a.uid AND category = a.category) as scores
FROM `annon` as a
LEFT JOIN `users` as u ON a.uid = u.id
WHERE a.category = 'A'
GROUP BY scores, u.username
ORDER BY scores DESC
LIMIT 0,5

https://www.db-fiddle.com/f/pbHakSmezARjnLYkMkz3qB/0
Jak widać, Jacek i Tomek mają taką samą liczbę punktów, a są w osobnych rekordach. W czym tkwi problem?

Pozdrawiam.

1

Group by nie po username a po category:

SELECT
  GROUP_CONCAT(DISTINCT CONCAT(u.id,';', u.username) SEPARATOR ', ') AS users,
  a.category,
  (SELECT SUM(points) FROM `annon` WHERE uid = a.uid AND category = a.category) as scores
FROM `annon` as a
LEFT JOIN `users` as u ON a.uid = u.id
WHERE a.category = 'A'
GROUP BY scores, a.category
ORDER BY scores DESC
LIMIT 0,5

1 użytkowników online, w tym zalogowanych: 0, gości: 1