SQLite:当整行不唯一时删除重复行

SQLite:当整行不唯一时删除重复行,sqlite,view,no-duplicates,Sqlite,View,No Duplicates,我正在创建一个SQLite视图来跟踪客户电子邮件及其帐户。有些客户使用相同的电子邮件地址创建了多个帐户。使用SQLite,是否有一种方法可以限制视图只返回一次电子邮件,而不管该个人拥有多少帐户?我不关心哪个帐户被丢弃(即Jim1或Jim2) 这一观点将返回: AccountName Email Jim1 Jim@example.com Shania Sh@example.com 谢谢 通过电子邮件将结果分组,然后获取第一条或最后一条相应记录: SE

我正在创建一个SQLite视图来跟踪客户电子邮件及其帐户。有些客户使用相同的电子邮件地址创建了多个帐户。使用SQLite,是否有一种方法可以限制视图只返回一次电子邮件,而不管该个人拥有多少帐户?我不关心哪个帐户被丢弃(即Jim1或Jim2)

这一观点将返回:

AccountName    Email
Jim1           Jim@example.com
Shania         Sh@example.com

谢谢

通过
电子邮件将结果分组,然后获取第一条或最后一条相应记录:

  SELECT Email
  ,      MIN(AccountName) AS Account
    FROM table
GROUP BY Email;
更新: 请注意,您可以向电子邮件列添加唯一约束,以便在第二次尝试插入相同的值时,SQLite会出错:

CREATE TABLE Users
( id          INTEGER PRIMARY KEY
, email       TEXT    NOT NULL UNIQUE COLLATE NOCASE
, accountname TEXT    NOT NULL        COLLATE NOCASE
);
email
列上的子句表示两行不能包含相同的值。
该子句使SQLite以不区分大小写的方式比较该行中的值(因此“EMAIL”和“EMAIL”将被视为相等)

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