web-dev-qa-db-ja.com

データベース内の2つのフィールドに固有のSQL

データベーステーブルの2つの異なるフィールドの明確な組み合わせを取得できますか?その場合、SQLの例を提供できますか。

81
leora

単純にどうですか:

select distinct c1, c2 from t

または

select c1, c2, count(*)
from t
group by c1, c2
121
Howard Pinsley

2つのフィールドのみから異なる値を取得し、さらに他のフィールドを返す場合は、他のフィールドに何らかの集計(合計、最小、最大など)が必要であり、異なる2つの列が表示される必要がありますgroup by句。それ以外の場合は、デッカーの言うとおりです。

15

以下のSQLを使用する2つの列により、異なる結果を得ることができます。

SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
6
Wilson Wu

それでも1つの列だけでグループ化する場合(必要に応じて)、クエリをネストできます。

select c1, count(*) from (select distinct c1, c2 from t) group by c1
3
Denno

私の愚かな考えを共有してください:

C1でのみdistinctを選択できますが、c2ではできません。そのため、構文はselect ([distinct] col)+になります。ここで、distinctは各列の修飾子です。

しかし、考えてみると、私は1つの列のみが異なるのはナンセンスですであることがわかりました。次の関係を取ります。

_   | A | B
__________
  1| 1 | 2
  2| 1 | 1
_

select (distinct A), Bの場合、_A = 1_の適切なBは何ですか?

したがって、distinctstatementの修飾子です。

1
youkaichao