資料庫表結構如下:
ID(自增) SampleTag Time
===========================================
1 B20121583 2020-12-20
2 B20121583 2020-12-20
3 B20121583 2020-12-20
4 BY 2020-12-20
5 SHL 2020-12-20
6 SHL 2020-12-20
7 LB20121670 2020-12-21
8 LB20121670 2020-12-21
9 S20121670 2020-12-21
10 B20121578 2020-12-21
11 B20121562 2020-12-21
12 B20121562 2020-12-21
SQL陳述句如何查詢過濾掉 SampleTag 欄位相同的記錄呢?
uj5u.com熱心網友回復:
group by?uj5u.com熱心網友回復:
select *
from tb a
where not exists (select 1 from tb b where a.SampleTag = b.SampleTag and a.id < b.id)
樓主你首先要明確相同SampleTag的多行記錄中是按什么規則取單獨一行記錄的,然后按這個規則再寫sql陳述句
uj5u.com熱心網友回復:
--方法一:
SELECT DISTINCT SampleTag,Time FROM TABLE
--方法二:過濾SampleTag重復資料,取最后一次日期資料
SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY SampleTag ORDER BY Time DESC) AS NO
FROM TABLE)A
WHERE A.NO=1
uj5u.com熱心網友回復:
ID(自增) SampleTag Time===========================================
1 B20121583 2020-12-20
4 BY 2020-12-20
5 SHL 2020-12-20
7 LB20121670 2020-12-21
9 S20121670 2020-12-21
10 B20121578 2020-12-21
11 B20121562 2020-12-21
希望查詢過濾掉 SampleTag 欄位重復的記錄!
uj5u.com熱心網友回復:
這個說的不夠明確啊,比如有兩行SampleTag是BY,一行的Time是2020-12-21 一行的Time是2020-12-22
保留哪行?過濾哪行?還是都過濾掉?
uj5u.com熱心網友回復:
按日期(每天),過濾 SampleTag 欄位的重復記錄uj5u.com熱心網友回復:
也就是當只有sampletag和time同時重復的時候才過濾咯?如果2020-12-21出現一個by,2020-12-22也出現一個by,就是都保留對吧SELECT MIN(ID),SAMPLETAG,TIME FROM TEST A GROUP BY SAMPLETAG,TIME
uj5u.com熱心網友回復:
CREATE TABLE #A
(
ID INT,
SAMPLETAG VARCHAR(200),
[TIME] DATE
)
INSERT INTO #A VALUES (1,'B20121583','2020-12-20')
INSERT INTO #A VALUES (2,'B20121583','2020-12-20')
INSERT INTO #A VALUES (3,'B20121583','2020-12-20')
INSERT INTO #A VALUES (4,'BY','2020-12-20')
INSERT INTO #A VALUES (5,'SHL','2020-12-20')
INSERT INTO #A VALUES (6,'SHL','2020-12-20')
INSERT INTO #A VALUES (7,'LB20121670','2020-12-21')
INSERT INTO #A VALUES (8,'LB20121670','2020-12-21')
INSERT INTO #A VALUES (9,'S20121670','2020-12-21')
INSERT INTO #A VALUES (10,'B20121578','2020-12-21')
INSERT INTO #A VALUES (11,'B20121562','2020-12-21')
INSERT INTO #A VALUES (12,'B20121562','2020-12-21')
SELECT MIN(ID),SAMPLETAG,TIME FROM #A A GROUP BY SAMPLETAG,[TIME] ORDER BY MIN(ID)
DROP TABLE #A
uj5u.com熱心網友回復:
無法查詢,注意是 Access資料庫
uj5u.com熱心網友回復:
能不能同時加上按日期查詢并排序?uj5u.com熱心網友回復:
按日期排序嗎?SELECT MIN(ID),SAMPLETAG,TIME FROM TEST A GROUP BY SAMPLETAG,TIME ORDER BY TIME
uj5u.com熱心網友回復:
能不能同時加上按日期查詢并排序? 也就是當只有sampletag和time同時重復的時候才過濾咯?如果2020-12-21出現一個by,2020-12-22也出現一個by,就是都保留對吧
SELECT MIN(ID),SAMPLETAG,TIME FROM TEST A GROUP BY SAMPLETAG,TIME
按日期排序嗎?SELECT MIN(ID),SAMPLETAG,TIME FROM TEST A GROUP BY SAMPLETAG,TIME ORDER BY TIME
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/238822.html
標籤:疑難問題
