4

使用するSELECT * FROM myTableと、次のようなリストが表示されます。

A    473
A    234
B    752
C    136

ただし、同じ文字で複数の行を取得したくありません。次のように、特定の文字で最初のエントリを取得してから、次のエントリにスキップしたいだけです。

A    473
B    752
C    136

これで、自分が持っているデータの種類がわかれば、これを行う方法がわかりました。ただし、テーブルがどのように見えるかに関係なく機能する SQL コマンド、つまり次のような SQL コマンドを書きたいと考えていますSELECT * FROM myTable WHERE duplicates of column1 are discarded

編集: 一意の column1 値ごとに選択される最初のエントリである必要はありません。どの行でも構いません。

EDIT 2:ソリューションが文字列と数値の両方で機能することを非常に望んでいます。

4

3 に答える 3

3

ある種の集計関数を使用して、必要な column2 の値を取得できます。例:

SELECT Column1, MAX(Column2)
FROM MyTable
GROUP BY Column1

さまざまな集計関数とその機能については、こちらを参照してください。そのリンクは SQL Server に固有のものですが、同じ考え方が多くの DBMS に当てはまります。

于 2012-07-26T21:50:24.327 に答える
1

使用できますGROUP BYSELECT column1 FROM myTable GROUP BY column1動作します:

A
B
C

column2 が必要な場合は、 などの集計関数を選択する必要がありますMAXSELECT column1,MAX(column2) FROM myTable GROUP BY column1:

A    473
B    752
C    136

これにより、各行にmyTable与えられcolumn1た最高のcolumn2.

于 2012-07-26T21:49:38.200 に答える
-1

関数「rownum」を使用できます

例えば:

select * from table_name where rownum < 2;

o/p: 最初の行のエントリが表示されます。

于 2015-06-04T18:59:28.867 に答える