PHP计算MySQL值并忽略重复

时间:2015-06-09 08:50:37

标签: php mysql

我很难计算在表计划中找到新 personnel_id 的次数,但如果第二次找到相同的personnel_id则会忽略。

例如 personnel_id 24 下周在A楼和B楼,但只计为1,因为这是同一个人。

最后我会做$result = $totalpersonnel_id_tablepersonnel - $totalpersonnel_id_tableplanning这样的事情,它会给我一个像7这样的数字,这意味着7名员工没有受到影响。

我认为这是我想要的正确查询:

$test=mysql_query("SELECT COUNT(DISTINCT personnel_id) AS numberpid 
FROM planning WHERE personnel_id!='' GROUP BY personnel_id HAVING 
COUNT(personnel_id) > 1");

我没有找到如何从此查询中获得总和。

3 个答案:

答案 0 :(得分:1)

如果personnel_id!=''表示NOT NULL,则使用personnel_id IS NOT NULL而不是使用numberpid> 1编辑下面后查询

SELECT COUNT(DISTINCT personnel_id) AS numberpid 
FROM planning WHERE personnel_id IS NOT NULL 
GROUP BY personnel_id 
HAVING numberpid > 1

答案 1 :(得分:0)

您需要使用子查询来对personnel_id进行过滤,分组和计数,并过滤parrent查询中的计数。

SELECT personnel_id, numberpid 
FROM (
    SELECT count(personnel_id) as numberpid, personnel_id 
    FROM palnning 
    WHERE personnel_id!='' 
    GROUP BY personnel_id) as tmp_table 
WHERE numberpid > 1

答案 2 :(得分:0)

找到解决方案:

$result=mysql_query("SELECT COUNT(*) AS numberpid FROM planning WHERE personnel_id!='' GROUP BY personnel_id"); $howmany=mysql_num_rows($result);

感谢您的帮助!