1

次の基準を満たすクエリを作成する必要があります。

  • X 列と MAX(column1) を選択し、X 列でグループ化します
  • column1 に負の値が含まれている場合 (特定のグループ内で 1 つのみ)、MAX(column1) の代わりに「reset」を表示します

グループ化する前にケースを使用して負の値を非常に大きな数に置き換え、グループ化後にケースを使用することでそれを実行できることはわかっていますが、これは非常に面倒な解決策です。

これを解決する方法を知っている人はいますか?

4

1 に答える 1

3

さらに、最小値を選択して、それが負かどうかを確認できます。
次のようなもの:

select foo, case when min_value < 0 then 'reset' else to_char(max_value) end
from
(
  select foo, max(column1) as max_value, min(column1) as min_value
  from your_table
  group by foo
)

または、サブクエリなしで:

select foo, case when min(column1) < 0 then 'reset' else to_char(max(column1)) end
from your_table
group by foo
于 2013-05-13T13:58:12.063 に答える