2011-03-21 5 views
1

고객의 이메일과 계정을 추적하기 위해 SQLite 뷰를 생성하고 있습니다. 동일한 이메일 주소로 여러 계정을 만든 고객이 있습니다. SQLite를 사용하면 개개인의 계정 수에 관계없이 한 번만 각 이메일을 반환하도록보기를 제한 할 수 있습니까? 나는 어떤 계정이 버려지는지 걱정하지 않습니다 (즉, Jim1 또는 Jim2).SQLite : 전체 행이 고유하지 않을 때 중복 행을 제거하십시오.

AccountName Email 
Jim1   [email protected] 
Jim2   [email protected] 
Shania   [email protected] 

뷰는 반환 :

AccountName Email 
Jim1   [email protected] 
Shania   [email protected] 

감사합니다!

SELECT Email 
    ,  MIN(AccountName) AS Account 
    FROM table 
GROUP BY Email; 

UPDATE : Email에 의해

답변

3

그룹에게 그 결과는 다음 첫 번째 또는 마지막 해당 기록을 취할 수 있도록, 당신은 이메일 열에 고유 제한 조건을 추가 할 수 있습니다 참고 SQLite는 오류 아웃 경우

CREATE TABLE Users 
(id   INTEGER PRIMARY KEY 
, email  TEXT NOT NULL UNIQUE COLLATE NOCASE 
, accountname TEXT NOT NULL  COLLATE NOCASE 
); 

email 컬럼에 UNIQUE 절은 더 t을 나타냅니다 : 당신은 같은 값을 두 번째를 삽입하려고 행에는 동일한 값이 포함될 수 있습니다.
COLLATE NOCASE 절은 SQLite가 대/소문자를 구분하지 않고 해당 행의 값을 비교하도록합니다 ('EMAIL'및 'eMail'은 같은 것으로 간주됩니다).

관련 문제