[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
2022-01-25 05:10:36
質問
この問題は以前にも議論されたことがありますが、どの回答も私の具体的な問題を扱っていません。 このクエリはSybaseでは問題なく実行できますが、SQL Serverで実行すると、この記事のタイトルにあるようなエラーが発生します。 クエリは複雑ですが、クエリの一般的なアウトラインは次のとおりです。
select sum ( t.graduates -
( select sum ( t1.graduates )
from table as t1
where t1.id = t.id and t1.group_code not in ('total', 'others' ) ) )
from table as t
where t.group_code = 'total'
以下は、私が解決しようとしている状況を記述したものです。
- グループコードは、「合計」と「その他」を除き、すべて人種を表しています。
- グループコード「total」は全人種の卒業生の合計を表します。
- ただし、Multi-raceがないため、人種別卒業生数の合計が総卒業生数に一致しない場合があります。
- この欠落したデータを計算する必要があります。
派生テーブルや結合を使用して、同じ結果を得るためにこれを書き直す方法はありますか?
更新してください。 私が作成した サンプルデータと、具体的な問題に対する3つの解決策 (2つはsgeddesさんの影響)。私が追加したものは、FROM句で相関サブクエリを派生テーブルに移動させるというものです。助けてくれてありがとうございます。
解決方法は?
1つの方法は、サブクエリを
LEFT JOIN
:
select sum ( t.graduates ) - t1.summedGraduates
from table as t
left join
(
select sum ( graduates ) summedGraduates, id
from table
where group_code not in ('total', 'others' )
group by id
) t1 on t.id = t1.id
where t.group_code = 'total'
group by t1.summedGraduates
おそらく、より良いオプションは
SUM
と共に
CASE
:
select sum(case when group_code = 'total' then graduates end) -
sum(case when group_code not in ('total','others') then graduates end)
from yourtable
関連
-
[解決済み] ''付近の構文が正しくない
-
[解決済み] SELECT DISTINCTを指定した場合、ORDER BY項目は必ず選択リストに表示されます。
-
[解決済み] どのように私は、SQL Serverの上位100レコードを更新することができます。
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Serverにおける関数とストアドプロシージャの比較
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] SQL Serverには、.NETのMath.Maxのような2つの値を取るMax関数はありますか?
-
[解決済み] Microsoft SQL Server 2005でgroup_concat MySQL関数をシミュレートする?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しない
-
[解決済み] テーブルのFROM句の項目がない [終了しました] 。
-
[解決済み】データベースへの「ネイティブ」SQL接続を使用するとはどういう意味ですか?
-
[解決済み] 3を挿入すると「ORA-01438: この列で許容される指定精度より大きい値」と表示される。
-
[解決済み】sys.dm_exec_sql_textはどのように機能するのでしょうか?
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] SELECT DISTINCTを指定した場合、ORDER BY項目は必ず選択リストに表示されます。
-
[解決済み] エラー: 名前解析スクリプトで正しい関数に渡された長さのパラメーターが無効です。
-
[解決済み] Presto SQL ピボッティング(言葉は悪いですが)データ
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法