[解決済み] SQL ServerでGROUP BYと一緒にDISTINCTを使用する
2022-03-07 13:09:45
質問
SQLでDISTINCTとGROUP BYの両方を使用する目的は何ですか?
以下はサンプルコードです。
SELECT DISTINCT Actors
FROM MovieDetails
GROUP BY Actors
DISTINCT と GROUP BY の両方を使用して、特定の結果を得る必要がある状況を知っている人はいますか?
(DISTINCTとGROUP BYの一般的な使い分けは理解できるのですが...。)
どのように解決するのですか?
使用方法
DISTINCT
を使用すると、重複する
GROUPING SETS
を削除します。
GROUP BY
節
を使用した全く馬鹿げた例です。
GROUPING SETS()
を一般的に使用します(または、特殊なグループ化セット
ROLLUP()
または
CUBE()
を使用すると、特に
DISTINCT
を使うことで、グループ化セットで生成された重複する値を再度削除することができます。
SELECT DISTINCT actors
FROM (VALUES('a'), ('a'), ('b'), ('b')) t(actors)
GROUP BY CUBE(actors, actors)
と
DISTINCT
:
actors
------
NULL
a
b
なし
DISTINCT
:
actors
------
a
b
NULL
a
b
a
b
しかし、学術的な指摘を除けば、なぜそんなことをするのでしょうか?
使用方法
DISTINCT
一意な集計関数の値を見つけるために
あまり突飛でない例では、以下のようなものがあります。
DISTINCT
というような集計値。
異なる
俳優の人数が重複している?
SELECT DISTINCT COUNT(*)
FROM (VALUES('a'), ('a'), ('b'), ('b')) t(actors)
GROUP BY actors
答えてください。
count
-----
2
使用方法
DISTINCT
を使用すると、2つ以上の重複を削除することができます。
GROUP BY
列
もうひとつ、もちろんこのようなケースもあります。
SELECT DISTINCT actors, COUNT(*)
FROM (VALUES('a', 1), ('a', 1), ('b', 1), ('b', 2)) t(actors, id)
GROUP BY actors, id
と
DISTINCT
:
actors count
-------------
a 2
b 1
なし
DISTINCT
:
actors count
-------------
a 2
b 1
b 1
詳しくは、以下のようなブログ記事を書いています。
について
GROUPING SETS
と、それらがどのように影響するのか
GROUP BY
操作
または
SQL操作の論理的な順序について(操作の語彙的な順序とは対照的です)
.
関連
-
[解決済み] sp_addrolememberとalter user with default schemaの違いは何ですか...?
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PRIMARY KEY制約に違反しました。オブジェクトに重複したキーを挿入できない
-
[解決済み] SQL Serverでシングルクォートを置換する
-
[解決済み] SQL Server xp_delete_file パラメータ
-
[解決済み] 管理者ユーザーで有効なxp_cmdshellへのアクセスが拒否されました。
-
[解決済み] SQL Server : ログインに成功しましたが、「データベース [dbName] にアクセスできません。(ObjectExplorer) "と表示されました。
-
[解決済み] EF: テキストデータ型は比較できないため、DISTINCT として選択できません。
-
[解決済み] NVARCHAR(MAX)の最大文字数を教えてください。[重複しています]。
-
[解決済み] SQL ServerでRegExを使用する
-
[解決済み] 文字列から特定の文字を削除する
-
[解決済み] SQL Server リンクサーバーのクエリ例