Есть ли альтернатива для any_type в MySQL 5.6? - PullRequest
0 голосов
/ 01 апреля 2020

Я работаю с MySQL 5,6 и 5,7. Я не хочу отключать режим only_full_group_by, но хочу, чтобы следующий запрос работал на обеих версиях.

SELECT grantee, any_value (count (privilege_type)) FROM information_schema.user_privileges group by grantee;

Все, что я хочу знать, это количество привилегий, назначенных каждому пользователю, существующему в базе данных.

1 Ответ

1 голос
/ 01 апреля 2020

Вы можете использовать этот запрос без ANY_VALUE:

SELECT grantee, count(privilege_type) 
FROM information_schema.user_privileges 
GROUP BY grantee;

Вам нужно ANY_VALUE только для неагрегированных столбцов. Но вы используете COUNT в privilege_type, поэтому столбец агрегируется ( список агрегатных функций в MySQL 5.6 + ). Столбец grantee не нуждается в статистической функции, поскольку он является частью GROUP BY.


Если вам нужна альтернатива для функции ANY_VALUE в MySQL 5.6, вы вместо этого можно использовать MIN или MAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...