Group By

數據表說明spa

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做爲主鍵,code

用projectid,sensorid,filename三個字段做爲記錄是否重複的判斷 blog

(projectid和sensorid,能夠定位到id,因此也能夠用id和filename做爲記錄是否重複的判斷)class

 

1.篩選所有數據

select * from filelist

顯示有1854條數據List

 

2.分組篩選,過濾掉重複的數據(重複的數據僅顯示一條)

select * from filelist
group by projectid,sensorid,filename

--group by id,filename

 

顯示有1552條數據,說明重複數據個數1854-1552=302file

 

3.篩選出單條重複的數據(僅顯示一條)

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

顯示有302條數據select

 

重複數據,篩選出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條數據im

 

5.數據

相關文章
相關標籤/搜索