データベーステーブルの2つの異なるフィールドの明確な組み合わせを取得できますか?その場合、SQLの例を提供できますか。
単純にどうですか:
select distinct c1, c2 from t
または
select c1, c2, count(*)
from t
group by c1, c2
2つのフィールドのみから異なる値を取得し、さらに他のフィールドを返す場合は、他のフィールドに何らかの集計(合計、最小、最大など)が必要であり、異なる2つの列が表示される必要がありますgroup by句。それ以外の場合は、デッカーの言うとおりです。
以下のSQLを使用する2つの列により、異なる結果を得ることができます。
SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
それでも1つの列だけでグループ化する場合(必要に応じて)、クエリをネストできます。
select c1, count(*) from (select distinct c1, c2 from t) group by c1
私の愚かな考えを共有してください:
C1でのみdistinctを選択できますが、c2ではできません。そのため、構文はselect ([distinct] col)+
になります。ここで、distinct
は各列の修飾子です。
しかし、考えてみると、私は1つの列のみが異なるのはナンセンスですであることがわかりました。次の関係を取ります。
_ | A | B
__________
1| 1 | 2
2| 1 | 1
_
select (distinct A), B
の場合、_A = 1
_の適切なB
は何ですか?
したがって、distinct
はstatement
の修飾子です。