除了列的重复输入外,我如何计算所有行?

时间:2016-12-29 13:15:14

标签: php mysql

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

<code>enter image description here</code>

这里我想要符合以下条件的行数: 1. forwarded_by = $ 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**

这给出了每个不同的ticket_id的计数,但是我希望得到总行而忽略重复的ticket_id。我该如何修改查询?

2 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:2)

您只希望count(distinct)没有group by

SELECT COUNT(DISTINCT ticket_id) as total
FROM tracks tr
WHERE where tr.forwarded_by = " . $loggedUser['id'] ;

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

编辑:

尽管有描述,但看起来清晰度基于(至少)两列,issue_idticket_id

SELECT COUNT(DISTINCT ticket_id, issue_id) as total
FROM tracks tr
WHERE where tr.forwarded_by = " . $loggedUser['id'] ;