我有一张包含以下数据的表格:
这里我想要符合以下条件的行数: 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。我该如何修改查询?
答案 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_id
和ticket_id
:
SELECT COUNT(DISTINCT ticket_id, issue_id) as total
FROM tracks tr
WHERE where tr.forwarded_by = " . $loggedUser['id'] ;