Group By

数据表说明

复制代码
CREATE TABLE [FileList](
    [ProjectId] INT NOT NULL ON CONFLICT FAIL, 
    [SensorId] VARCHAR(50) NOT NULL ON CONFLICT FAIL, 
    [FileName] VARCHAR(50) NOT NULL ON CONFLICT FAIL, 
    [StartTime] DATETIME NOT NULL, 
    [EndTime] DATETIME NOT NULL, 
    [FileStatus] VARCHAR(20) DEFAULT Uncompleted, 
    [RowId] INTEGER PRIMARY KEY AUTOINCREMENT, 
    [Id] INT NOT NULL)
复制代码

RowId作为主键,

用projectid,sensorid,filename三个字段作为记录是否重复的判断 

(projectid和sensorid,可以定位到id,所以也可以用id和filename作为记录是否重复的判断)

 

1.筛选全部数据

select * from filelist

显示有1854条数据

 

2.分组筛选,过滤掉重复的数据(重复的数据仅显示一条)

select * from filelist
group by projectid,sensorid,filename

--group by id,filename

 

显示有1552条数据,说明重复数据个数1854-1552=302

 

3.筛选出单条重复的数据(仅显示一条)

select * from filelist
group by id,filename
having count(*) > 1

显示有302条数据

 

重复数据,筛选出rowid较小的

select *
,min(rowid) 
from filelist
group by id,filename
having count(*) > 1

 

4.筛选出所有的重复的数据

复制代码
select a.*,b.[count] from filelist as a
inner join
(select *,count(*) as count from filelist
group by id,filename
having count(*) > 1) as b
on 
a.id = b.id
and 
a.filename = b.filename
复制代码

显示有604条数据

 

5.

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(3956)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2015-10-21 Weak Event Patterns
2015-10-21 C#中的多文档的使用
2015-10-21 如何将一个Form中的代码拆分到多个文件中
2014-10-21 C#入门经典 第六章 委托
点击右上角即可分享
微信分享提示