2016-12-29 41 views
2

我有具有下述數據的表:如何計算除列的重複條目之外的所有行?

<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。我應該如何修改查詢?

+1

有你試圖使用「GROUP BY」運算符? – arkascha

+1

對不起,但爲什麼11如果22和1上有重複項呢?我看到8個不同的'ticket_id' – sidyll

回答

3

試試這個:

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

你只是想count(distinct)沒有group by

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

注:在實際應用中,你應該使用參數化查詢,而不是改寫(munging)查詢字符串。

編輯:

儘管描述,看起來明顯是基於(至少)兩列,issue_idticket_id

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

我試圖理解什麼是獨特性,但我不認爲這是'ticket_id'和'issue_id',因爲22有兩個等於2就是使用作爲例子。另外,'SELECT count(1)FROM(SELECT DISTINCT ticket_id FROM tracks WHERE forwarded_by =?)t'可能是一種更快的方法 – sidyll

相關問題