フィールドの合計を選択する SELECT ステートメントを作成しようとしていますが、30 未満の数値の合計と 30 を超える数値の合計を返したいと考えています。私はそれを行う「きちんとした」方法を見つけたいと思っていました。
14623 次
3 に答える
19
これらの行に沿った何か(環境の構文を修正してください):
SELECT
sum(case when Field < 30 then Field else 0 end) as LessThan30,
sum(case when Field > 30 then Field else 0 end) as MoreThan30
FROM
DaTable
于 2009-07-03T07:46:17.257 に答える
1
要件は非常に漠然としていますが、行全体の SUM と <> 30 を想定します。これはケースの回答とは異なります。
SELECT
SelectCol1, SelectCol2, SelectCol3, ..., SUM(AggregateCol)
FROM
Table
GROUP BY
SelectCol1, SelectCol2, SelectCol3, ...
HAVING
SUM(AggregateCol) <> 30
于 2009-07-03T11:06:18.027 に答える
1
私が正しく理解している場合、数値を持つ単一の列があり、フィールド値が30未満で、フィールド値の変動が30を超える同じ条件のすべてのthw行について、このフィールドの合計を求めたいと考えています。正しい場合は、以下のクエリを使用して、それに応じてテーブルと列の名前を置き換えることができます。
SELECT SUM(CASE WHEN col1 < 30 THEN COL1 ELSE 0 END
) SUM(CASE WHEN col1 < 30 THEN COL1 ELSE 0 END
) FROM DATABASE.SCHEMANAME.TABLE
ありがとう、アトゥル
于 2009-07-03T07:53:01.313 に答える