SQLでのdistinctの使い方(4つの例の分析)
1468 ワード
distinctというキーワードは、余分な重複レコードをフィルタリングするために1つしか残っていないが、重複しないレコードのすべての値を返すのではなく、重複しないレコードの数を返すために使用されることが多い.その理由は、distinctはターゲットフィールドのみを返すことができ、他のフィールドを返すことができないためです.次に、SQLのdistinctの使い方をこの記事で共有します.必要な方は参考にしてください.
mysqlを使用する場合、あるフィールドの重複しないレコードをクエリーする必要がある場合があります.mysqlはdistinctというキーワードを提供して余分な重複レコードをフィルタリングして1つしか残っていませんが、重複しないレコードの数を返すのではなく、重複しないすべての値を返すのではなく、重複しないレコードの数を返すだけです.その原因はdistinctがターゲットフィールドを返すしかなく、他のフィールドを返すことができないためです.この問題は私を長い間悩ませていました.distinctで解決できない場合は、二重ループクエリーで解決するしかありません.このように、データ量が非常に大きいステーションにとって、効率に直接影響を与えるに違いありません.そのため、私は多くの時間を浪費しました.
テーブルには、重複する値が含まれる場合があります.これは問題ありませんが、異なる値だけをリストしたい場合があります.キーワードdistinctは、唯一異なる値を返すために使用されます.
表A:
例1
実行後の結果は次のとおりです.
例2
実行後の結果は次のとおりです.
実際には「name+id」に基づいて重さを除去し、distinctはnameとidに同時に作用し、この方式はAccessとSQLサーバが同時にサポートする.
例3:統計
例4
その他
distinct文にselectが表示するフィールドは、distinctが指定したフィールドのみであり、他のフィールドは表示されません.たとえば、テーブルAに「コメント」列がある場合、distinc nameと対応する「コメント」フィールドを取得したい場合、distinctで直接実現することは不可能です.
mysqlを使用する場合、あるフィールドの重複しないレコードをクエリーする必要がある場合があります.mysqlはdistinctというキーワードを提供して余分な重複レコードをフィルタリングして1つしか残っていませんが、重複しないレコードの数を返すのではなく、重複しないすべての値を返すのではなく、重複しないレコードの数を返すだけです.その原因はdistinctがターゲットフィールドを返すしかなく、他のフィールドを返すことができないためです.この問題は私を長い間悩ませていました.distinctで解決できない場合は、二重ループクエリーで解決するしかありません.このように、データ量が非常に大きいステーションにとって、効率に直接影響を与えるに違いありません.そのため、私は多くの時間を浪費しました.
テーブルには、重複する値が含まれる場合があります.これは問題ありませんが、異なる値だけをリストしたい場合があります.キーワードdistinctは、唯一異なる値を返すために使用されます.
表A:
例1
select distinct name from A
実行後の結果は次のとおりです.
例2
select distinct name, id from A
実行後の結果は次のとおりです.
実際には「name+id」に基づいて重さを除去し、distinctはnameとidに同時に作用し、この方式はAccessとSQLサーバが同時にサポートする.
例3:統計
select count(distinct name) from A; -- name , SQL Server , Access
select count(distinct name, id) from A; --SQL Server Access
例4
select id, distinct name from A; -- , distinct
その他
distinct文にselectが表示するフィールドは、distinctが指定したフィールドのみであり、他のフィールドは表示されません.たとえば、テーブルAに「コメント」列がある場合、distinc nameと対応する「コメント」フィールドを取得したい場合、distinctで直接実現することは不可能です.