Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何计算除列的重复条目之外的所有行?_Php_Mysql - Fatal编程技术网

Php 如何计算除列的重复条目之外的所有行?

Php 如何计算除列的重复条目之外的所有行?,php,mysql,Php,Mysql,我有一个包含以下数据的表格: 这里我想要符合以下条件的行数: 1.转发人=$loggedUser['id'] 2.票证id应该是不同的 因此,上表共有12行,但ticket_id 2有一个重复条目。所以我的预期输出是11 我运行一个查询 **SELECT COUNT(tr.id) as total FROM tracks tr WHERE where tr.forwarded_by = " . $loggedUser['id'] GROUP BY tr.ticket_id** 这为每个不同的

我有一个包含以下数据的表格:

这里我想要符合以下条件的行数: 1.转发人=$loggedUser['id'] 2.票证id应该是不同的 因此,上表共有12行,但ticket_id 2有一个重复条目。所以我的预期输出是11

我运行一个查询

**SELECT COUNT(tr.id) as total FROM tracks tr WHERE  where tr.forwarded_by = " . $loggedUser['id'] GROUP BY tr.ticket_id**
这为每个不同的票证id提供了一个计数,但我希望获得忽略重复票证id的总行数。我应该如何修改查询?

您只需要不带分组的countdistinct by:

注意:在实际应用程序中,应该使用参数化查询,而不是使用查询字符串

编辑:

尽管有描述,但区别性似乎至少基于两列,即发行号和票证号:

试试这个:

SELECT COUNT( DISTINCT tr.ticket_id ) AS total
FROM tracks tr
WHERE tr.forwarded_by =87

您是否尝试过按操作员使用分组?对不起,如果22和1上也有重复的分组,为什么选择11?我看到了8个不同的票证id,我也在试着理解它们的区别,但我不认为票证id和发行id都有区别,因为22和2是相等的,就像用作示例的2一样。另外,从“选择不同的票证id”中选择count1,从“转发者=”所在的曲目中选择?这可能是一个更快的方法
SELECT COUNT(DISTINCT ticket_id, issue_id) as total
FROM tracks tr
WHERE where tr.forwarded_by = " . $loggedUser['id'] ;
SELECT COUNT( DISTINCT tr.ticket_id ) AS total
FROM tracks tr
WHERE tr.forwarded_by =87