获得独特的结果而不使用group by

时间:2014-01-01 13:30:54

标签: sql sqlite

出于某种原因,我无法使用GROUP BY,但我可以像这样使用DISTINCT

SELECT DISTINCT(name), id, email from myTable

然而,上面的查询列出了具有相同名称的人,因为我选择了多个列,而我只想选择唯一的名称。有没有使用GROUP BY来获取唯一名称?

1 个答案:

答案 0 :(得分:2)

尽管使用GROUP BY是最直接的方式,但如果禁止使用,则可以执行其他操作。例如,您可以将NOT EXISTS与子查询一起使用,如下所示:

SELECT name, id, email
FROM myTable t
WHERE NOT EXISTS (SELECT * FROM myTable tt WHERE tt.name=t.name AND tt.id < t.id)

此查询使用NOT EXISTS来消除名称和ID高于所选行的行。请注意,由于此查询必须为每个名称选择一个用户,因此可能会根据其ID删除某些用户,这是一个相当随意的标准。