表:reactions
+--------------+---------+ | Column Name | Type | +--------------+---------+ | user_id | int | | content_id | int | | reaction | varchar | +--------------+---------+ (user_id, content_id) 是这张表的主键(值互不相同)。 每一行代表用户对某条内容的反应。
根据以下要求编写一个解决方案,以识别 情绪一致的用户:
5 个不同内容项 作出反应的用户。60% 的反应属于 同一种类型,则认为其 情绪一致。返回结果表按 reaction_ratio 降序 排序,然后按 user_id 升序 排序。
注意:
reaction_ratio 应该舍入到 2 位小数结果格式如下所示。
示例:
输入:
reactions 表:
+---------+------------+----------+ | user_id | content_id | reaction | +---------+------------+----------+ | 1 | 101 | like | | 1 | 102 | like | | 1 | 103 | like | | 1 | 104 | wow | | 1 | 105 | like | | 2 | 201 | like | | 2 | 202 | wow | | 2 | 203 | sad | | 2 | 204 | like | | 2 | 205 | wow | | 3 | 301 | love | | 3 | 302 | love | | 3 | 303 | love | | 3 | 304 | love | | 3 | 305 | love | +---------+------------+----------+
输出:
+---------+-------------------+----------------+ | user_id | dominant_reaction | reaction_ratio | +---------+-------------------+----------------+ | 3 | love | 1.00 | | 1 | like | 0.80 | +---------+-------------------+----------------+
解释:
结果表按 reaction_ratio 降序排序,然后按 user_id 升序排序。