我使用的是MySQL 5.6和5.7。我不想关闭only_full_group_by模式,但我希望下面的查询在两个版本上都能工作。
按被授权者从information_schema.user_privileges分组中选择被授权者,计数(Privilege_type);
我只想知道分配给数据库中每个用户的特权数量。
发布于 2020-04-01 22:23:10
可以在不使用ANY_VALUE的情况下使用此查询
SELECT grantee, count(privilege_type)
FROM information_schema.user_privileges
GROUP BY grantee;您只需要在非聚集列上使用ANY_VALUE。但是您在privilege_type上使用的是COUNT,因此该列是聚合的(list of aggregate functions on MySQL 5.6+)。列grantee不需要聚合函数,因为它是GROUP BY的一部分。
如果您需要替代MySQL 5.6上的ANY_VALUE函数,您可以使用MIN或MAX。
https://stackoverflow.com/questions/60973008
复制相似问题