Вернуть число различных конкатов, если получено более одного результатаMySql

Форум по Mysql
Ответить
Anonymous
 Вернуть число различных конкатов, если получено более одного результата

Сообщение Anonymous »

Я пытаюсь получить отдельное количество столбцов, сгруппированных по другому столбцу, но хочу, чтобы результаты включали только количество столбцов, превышающее ОДИН. Итак, если у меня есть следующее:

Код: Выделить всё

SELECT *
FROM cast
ORDER BY cast_characters_id, cast_identities_id, cast_roles_id


cast_characters_id
cast_identities_id
cast_roles_id




1
1
1

1
1
1


1
2
1


1
21


3
3
2


4
4
2

4
4
2


5
5
3


5
53



Как я бы хотелось бы считать по уникальным ролям, а не по ОДНОЙ, исходя из вышеизложенного, роль 1 будет иметь ДВА разных результата, роль 2 будет иметь ОДИН отдельный результат, и роль 3 будет иметь ОДИН отличный результат. Один экземпляр символов_id(3), identities_id(3) и role_id(2) будет проигнорирован, поскольку это произошло только один раз. Итак, я попробовал это и получил:

Код: Выделить всё

SELECT cast_roles_id, COUNT(DISTINCT CONCAT(cast_characters_id, cast_identities_id, cast_roles_id)) AS 'cnt'
FROM cast
GROUP BY cast_roles_id
HAVING cnt > 1;


cast_roles_id
cnt




1
2


2
2


3
1



Очень близко, но похоже, что он подсчитывает всех отдельных персонажей/личности/роли, независимо от количества экземпляров. Действительно, когда я удаляю элемент «иметь» из запроса, я получаю те же результаты, поэтому кажется, что он ничего не делает, хотя и не выдает сообщения об ошибке.
Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/793 ... one-result
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»