У меня возникла проблема с моим запросом, имеющим как , так и GROUP_CONCAT
.Проблема с Mysql SUM и GROUP_CONCAT в запросе
Значения стоимости меняются, так как значения GROUP_CONCAT
возрастают.
Ниже мой код:
SELECT ul.display_name,
ul.photo,
ul.user_id,
Sum(ulr.level_score) AS level_scores,
Sum(ulr.level_timer) AS level_timer,
Group_concat(ulr.level_completed) AS levels,
Group_concat(DISTINCT c.bit_id) AS bit_id
FROM user_level_responses AS ulr
INNER JOIN user_login AS ul
ON (
ul.user_id=ulr.user_id)
INNER JOIN c_member AS cm
ON (
cm.user_id=ul.user_id
AND cm.user_approval='Y'
AND cm.delete_status='0'
AND cm.status='1')
INNER JOIN ctree ct
ON (
cm.circuit_id=ct.circuit_id)
INNER JOIN cir AS c
ON (
c.circuits_id=cm.circuit_id
AND c.builtin=0
AND c.delete_status='0'
AND c.status='1')
WHERE Match(ct.circuit_path) against ('_902_')
AND ulr.institution_id=321
AND ulr.delete_status=0
AND ulr.status=1
AND ul.delete_status=0
GROUP BY ulr.user_id
ORDER BY level_scores DESC,
level_timer ASC,
ul.display_name limit 500
Если фактическая оценка составляет 900, а если у меня есть 2 идентификаторов в GROUP_CONCAT
тогда фактический счете вдвое оригинал.
Expected OUTPUT:
user1 2010.cs,btech 960 00:01:08 Completed
user2 btech 920 00:01:08 Completed
OUTPUT GETTING:
user1 2010.cs,btech 1920 00:01:08 Completed
user2 btech 920 00:01:08 Completed
дважды фактическая сумма т.е. 960.
У вас возникли проблемы с 'SUM' или' GROUP_CONCAT'? Можете ли вы представить здесь ожидаемые данные проб и фактические данные образца? –
Если user_login, c_member, c_tree или cir имеют две возможные строки, которые могут присоединиться в любой момент, это удвоит ваши результаты. Я предполагаю, что user_login не является результатом, потому что user_id должен быть уникальным, но поскольку мы не знаем природу какого-либо остального, трудно определить, что это может быть. – trex005
@ trex005 пользователь может иметь несколько идентификаторов, которые являются group_concated с использованием запроса ... да u правы, поскольку первая строка имеет 2 идентификатора, поэтому оценка удваивается .... в любом случае обходить это ... так как пользователь может быть частью многие группы и его id - c.bit_id – Wolverine