mysql - 忽略 COUNT 中的重复行

标签 mysql sql

下面的查询给出了exp_judging表中pre字段值为1的行数,其中exp_submissions中也有member_group为5的匹配列

SELECT COUNT(*) AS count_result
  FROM exp_judging AS jud
  LEFT JOIN exp_submissions AS sub ON jud.rel_id = sub.id 
  WHERE jud.pre = 1
        AND sub.member_group = 5

这很好用。但是,以后'exp_judging'表中会有多行具有相同'rel_id'的行。

如何确保每一行中只有一个被计算在内?

我尝试将 GROUP BY 添加到末尾,但它只显示 1 个结果,而不是之前的 4 个。 (还没有重复)

GROUP BY jud.rel_id

编辑:

已尝试以下,但仍然只显示 1:

SELECT COUNT(DISTINCT jud.rel_id) AS count_result
FROM exp_judging AS jud
LEFT JOIN exp_submissions AS sub ON jud.rel_id = sub.id 
WHERE jud.pre = 1
AND sub.member_group = $member_group
GROUP BY jud.rel_id

最佳答案

使用 COUNT(DISTINCT rel_id) 而不是 COUNT(*)

关于mysql - 忽略 COUNT 中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152968/

相关文章:

mysql - 如何获取 MySQL 组中的最后一条记录

PHP 在我的 html 范围之外回显打印

sql - MySQL中DELIMITER和DECLARE的使用?

mysql - Sql:将行转变成列

mysql - 我如何知道选择左连接时 'hit' 范围内的哪个值?

php - 通过点击优化内容流行度查询

php - laravel - 三个表的内连接查询

当旧值为 NULL 时,MySQL 触发器更新日期不起作用

PHP Mysql GET 上个月和当月数据

php - 大型 PHP session 减慢 Web 应用程序