的狀態可以說,我們有4個領域檢查重複的記錄
id (INT 11 AUTO_INC)
email (VAR 50)
timestamp (INT 11)
status (INT 1)
命名record
表和表包含以下數據
現在我們可以看到的電子郵件地址[email protected]被複制了4次(時間戳最低的記錄是原始記錄,之後的所有副本都是重複記錄)。多少次使用
SELECT email, count(id) FROM record GROUP BY email HAVING COUNT(id)>1
我可以很容易地計算使用
SELECT COUNT(DISTINCT email) FROM record
了獨特的記錄數我也可以很容易找到的電子郵件地址被複制但現在的商業問題是
如何所有重複記錄中有多次STATUS
是1?
例如:
- 對於[email protected]有具有狀態1
- 沒有重複記錄對於[email protected]有具有1個重複的記錄狀態1
- 對於第三@ example.com有1個重複的記錄,狀態爲1
- 對於[email protected],沒有重複記錄狀態爲1
- 對於[email protected],有2個重複記錄狀態爲1
因此,所有的數字之和是0 + 1 + 1 + 0 + 2 = 4
這意味着有其中有status = 1
在表4點中重複的記錄
問題
多少重複的記錄有狀態= 1?
考慮提供一個sqlfiddle(或適當的ddls無論如何) – Strawberry
關於你的答案的臨時評論http://stackoverflow.com/a/18307508/285587 - 與()數組上的這個事情是不正確的,而你的答案在技術上是正確的。 –
@YourCommonSense謝謝,我知道從5.5開始,'()'概念可以用於訪問數組值,因此我刪除了我的答案並向上投票。再次感謝:) –