我有一张只有2列的大桌子。一个是主ID列,另一个是数据列。
我只需要选择表中未重复的记录。我尝试了以下查询,但需要花费很多时间,不确定是否确实有效。
select * from (select column_name
from table_name
group by column_name
having count(*) = 1) x;
您怎么看?
如果它能更快地完成工作,我也愿意接受其他尝试。
答案 0 :(得分:0)
您可以离开联接同一张表,或者使用子查询检查重复项。 对于SQL Server,这应该更容易,因为它不会计算所有重复项。 像这样:
SELECT
t1.column_name
FROM
table_name AS t1
WHERE
NOT EXISTS (
SELECT
*
FROM
table_name AS t2
WHERE
t2.column_name = t1.column_name
AND t2.id != t1.id
)
OR
SELECT
t1.column_name
FROM
table_name AS t1
LEFT JOIN table_name t2 ON (
t2.column_name = t1.column_name
t2.id != t1.id
)
WHERE
t2.column.name IS NULL