データベース内の2つのフィールドで異なるSQL


84

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

回答:


128

簡単に言うと:

select distinct c1, c2 from t

または

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

データによっては、group byは個別よりも遅くなります
noizer 2015

5
それらご覧Operand should contain 1 column(s)エラー、あなたの問題は、おそらくやっているということですselect distinct(c1, c2) from t、あなたはここにブラケットを許可されていません。それが私がここにたどり着いた方法です。
BookOfGreg 2017年

16

2つのフィールドのみから個別の値が必要で、他のフィールドも一緒に返す場合は、他のフィールドに何らかの集計(合計、最小、最大など)が必要であり、区別する2つの列がに表示される必要があります。 groupby句。そうでなければ、それはデッカーが言うようです。


7

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

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

5

それでも(私が望んでいたように)1つの列だけでグループ化したい場合は、クエリをネストできます。

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

3

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

たぶん、c1でのみdistinctを選択でき、c2では選択できないので、構文は次のようになります。select ([distinct] col)+ここdistinctで、は各列の修飾子です。

しかし、考えてみると、1つの列だけ区別するのはナンセンスだと思います。次の関係を取ります。

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

私たちのselect (distinct A), B場合、何が適切BですA = 1か?

したがって、distinctはの修飾子ですstatement

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.