3

テーブルに個別のタプルをリストするさまざまな方法は何ですか。GOLDMAN SACHSからの元の質問では、そのような方法の 1 つがDISTINCTを使用している 10 の異なる方法をリストするように指示されています。誰かが私をもっと助けてくれますか..

4

4 に答える 4

8

Here's four.

GROUP BY <all_columns>

SELECT * FROM T INTERSECT SELECT * FROM T

SELECT * FROM T UNION SELECT * FROM T

SELECT * FROM T EXCEPT SELECT * FROM T WHERE 1 = 0

于 2012-06-26T10:46:24.833 に答える
1
Set @row:=0; 
select colname from (select colname,@row:=@row+1 as Row from tablename group by colname) as abc where Row>0;

これは、エントリに行名を与える別の方法です。

于 2012-06-30T06:12:58.023 に答える
1

ここに別のものがあります(ANSI SQL)

select *
from (
    select t.*,
           row_number() over (partition by <all_columns>) as rn
    from t
) t
where rn = 1
于 2012-06-26T10:50:05.167 に答える
0

1 Count と Group By の使用:

select f1,f2,count(*) from sample_table 
group by f1,f2 
having count(*) = 1;

2 共通テーブル式を使用:

;WITH CTE (Col1,Col2,Col3,DuplicateCount)
AS
(
SELECT Col1,Col2,Col3,
ROW_NUMBER() OVER(PARTITION BY Col1,Col2,Col3 ORDER BY Col1) AS DuplicateCount
FROM MyTable)
Select * from CTE Where DuplicateCount=1
于 2012-06-26T10:55:42.707 に答える