目前有一查詢語法,想要將查詢出來的結果某一欄位不重複資料只取一筆出來
查詢語法如下:
結果是以下:
反藍色這三筆因為ULD資料是重複的雖然後面的資料有不同的地方但我只想針對ULD,我想要在這三筆中只取出一筆在這個Table中。
我有使用過distinct和union all/union這兩種方法,可是還是沒有篩選到,不然就是我寫錯了=ˇ= 如下:
目前我是把他們分群之後,就不知道該如何下手,也不確定是不是朝這個方向前進
還請各位大神相救...
小的在線等待QQ
我是你可愛的隊友,你把你那一大串包起來
select * from (
A union B
) TEMP1
再排序
select * from (select ROW_NUMBER() OVER (
PARTITION BY ULD
ORDER BY ACCEPTANCE_DATETIME DESC) sort_id,* from (
A union B
) TEMP1)TMP2 where sort_id = 1
針對同一個UID 使用ACCEPTANCE_DATETIME 排序最新
預設是小到大要大到小就要使用降冪 DESC
order by money desc, costtime asc
/* 這句排序意思是:優先篩錢最多的,然後假設錢一樣我要選花的時間最少的*/
/*因asc是預設所以可以省略 =>*/
order by money desc, costtime
CREATE TABLE SENSOR (
SEN_NUM varchar2(10),
SEN_NAME varchar2(30),
SEN_BRAND varchar2(20),
SEN_FUNC varchar2(50),
NODE_ID varchar2(10));
insert into SENSOR(SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC,NODE_ID)
values('T01','MA1','MA2','O3','S001');
insert into SENSOR(SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC,NODE_ID)
values('T02','MB1','MB2','SO2','S001');
insert into SENSOR(SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC,NODE_ID)
values('T03','MC1','MA3','NOX','S001');
insert into SENSOR(SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC,NODE_ID)
values('T04','MB1','MC2','SO2','S002');
insert into SENSOR(SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC,NODE_ID)
values('T05','MC1','MB2','XOX','S002');
insert into SENSOR(SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC,NODE_ID)
values('T06','MC1','MA2','O3','S002');
insert into SENSOR(SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC,NODE_ID)
values('T06','MC1','MA2','O3','S002XXX');
語法一 :
SELECT DISTINCT SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC
FROM SENSOR
UNION
SELECT DISTINCT SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC
FROM SENSOR
語法二 :
SELECT SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC
FROM SENSOR
UNION
SELECT SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC
FROM SENSOR
GROUP BY SEN_NUM,SEN_NAME,SEN_BRAND,SEN_FUNC