这就是我想要做的。我有一个包含重复行的用户评估表。我希望只DISTINCT
为每个用户获取值。
在下表的示例中。如果只有 user_id 1 和 50 属于特定位置,则只有每个用户的唯一 video_id 应作为COUNT
. 用户 1 传递了视频 1、2 和 1。所以应该只有 2 条记录,而用户 50 传递了视频 2。所以这个位置的总数是 3。我想我需要DISTINCT's
在查询中有两个,但不是确定如何做到这一点。
+-----+----------+----------+
| id | video_id | user_id |
+-----+----------+----------+
| 1 | 1 | 1 |
| 2 | 2 | 50 |
| 3 | 1 | 115 |
| 4 | 2 | 25 |
| 5 | 2 | 1 |
| 6 | 6 | 98 |
| 7 | 1 | 1 |
+-----+----------+----------+
这就是我当前查询的样子。
$stmt2 = $dbConn->prepare("SELECT COUNT(DISTINCT user_assessment.id)
FROM user_assessment
LEFT JOIN user ON user_assessment.user_id = user.id
WHERE user.location = '$location'");
$stmt2->execute();
$stmt2->bind_result($video_count);
$stmt2->fetch();
$stmt2->close();
因此,我的查询返回该特定位置的所有计数,但它不会忽略来自每个特定用户的非唯一结果。
希望这是有道理的,感谢您的帮助。