在mysql中的Group by中的混乱
在MySQL中使用GROUP BY进行分组时出现混淆的原因是因为子查询没有指定别名。解决方法是为子查询指定一个别名(例如sub0)。
以下是解决方法的代码示例:
SELECT num_users, GROUP_CONCAT(user_id) AS actual_users , COUNT(*) AS num_action_a1 FROM ( SELECT user_id, COUNT(*) AS num_users FROM some_table WHERE action = 'a1' GROUP BY user_id ) sub0 GROUP BY num_users
当没有为子查询指定别名时,会出现错误消息:ERROR 1248 (42000): Every derived table must have its own alias。
通过为子查询指定一个别名,可以解决这个问题。