在SQLite中查询单列唯一值并返回整行数据的方法
查询SQLite中ColHead列值唯一的完整记录
你可以用以下两种方法实现需求,返回目标记录的所有列:
方法一:子查询关联
先筛选出仅出现一次的ColHead值,再匹配原表获取完整记录:
SELECT * FROM DatabaseName WHERE ColHead IN ( SELECT ColHead FROM DatabaseName GROUP BY ColHead HAVING COUNT(*) = 1 );
方法二:窗口函数(推荐,性能更优)
利用SQLite 3.25+支持的窗口函数,直接给每条记录标记对应ColHead的出现次数,再筛选出次数为1的记录:
SELECT * FROM ( SELECT *, COUNT(*) OVER (PARTITION BY ColHead) AS ColHead_COUNT FROM DatabaseName ) AS sub WHERE ColHead_COUNT = 1;
两种方法都能满足需求,窗口函数只需扫描一次数据表,在数据量较大时效率更高。
内容的提问来源于stack exchange,提问作者Pat Shire
相关产品推荐
相关产品推荐

