同じ値を持つ行がある場合、1 行だけを表示する可能性はありますか?
私は次のシナリオを持っています:
ID | 列 A | 列 B | C列
1 | 2 | 'テスト' | 5
2 | 3 | 'テスト'| 6
3 | 2 | 'テスト'| 5
このシナリオでは、次の結果セットのみを表示したい:
ID | 列 A | 列 B | C列
1 | 2 | 'テスト' | 5
2 | 3 | 'テスト'| 6
ご協力いただきありがとうございます。
よろしく、プロ
同じ値を持つ行がある場合、1 行だけを表示する可能性はありますか?
私は次のシナリオを持っています:
ID | 列 A | 列 B | C列
1 | 2 | 'テスト' | 5
2 | 3 | 'テスト'| 6
3 | 2 | 'テスト'| 5
このシナリオでは、次の結果セットのみを表示したい:
ID | 列 A | 列 B | C列
1 | 2 | 'テスト' | 5
2 | 3 | 'テスト'| 6
ご協力いただきありがとうございます。
よろしく、プロ
id 列のため、行は正確に重複していません。id のどの値が表示されるかを気にしない場合は、次のように実行できます。
select max(id) as id, ColumnA, ColumnB, ColumnC
from t
group by ColumnA, ColumnB, ColumnC
ID がまったく必要ない場合、これはより簡単です。
select distinct ColumnA, ColumnB, ColumnC
from t
Try this :
With cte As
( Select * , row_number() over (partition by ColumnA, ColumnB,ColumnC
order by ID ) as myrownumber from myTable
)
Select * from cte where myrownumber=1
select id, column1,column2,colum3 from
(
select *, row_number() over (partition by column1,column2,colum3 order by id) as sno
from table
) as t
where sno=1
CREATE TABLE #test
(
ID TINYINT NOT NULL,
colA TINYINT NOT NULL,
colB VARCHAR(10) NOT NULL,
colC TINYINT NOT NULL
);
INSERT INTO #test VALUES (1,2, 'test', 5);
INSERT INTO #test VALUES (2,3, 'test', 6);
INSERT INTO #test VALUES (3,2, 'test', 5);
SELECT
ID,
ColA,
ColB,
ColC
FROM
(
SELECT
ID,
ColA,
ColB,
ColC,
ROW_NUMBER() OVER(PARTITION BY ColA ORDER BY ColA DESC) AS RowNum
FROM #test
) AS WorkTable
WHERE RowNum = 1