0

20行のテーブルがあり、10行にラベルが付けられA1, A2, A3, ...A10、他の10行はG1、G2などです。

それらは、0 から 99 までの値の整数を保持します。

たとえば、50〜70などの特定の範囲内にある値を持つ列の数がx(たとえば4)ある行のみを選択したい。

これは可能ですか?

4

1 に答える 1

3

ブルートフォースアプローチでそれを行う方法は次のとおりです。

select t.*
from (select t.*,
             ((case when a1 between 50 and 70 then 1 else 0 end) +
              (case when a2 between 50 and 70 then 1 else 0 end) +
              . . .
              (case when a10 between 50 and 70 then 1 else 0 end) +
              (case when g1 between 50 and 70 then 1 else 0 end) +
              (case when g2 between 50 and 70 then 1 else 0 end) +
              . . .
              (case when g10 between 50 and 70 then 1 else 0 end)
             ) n
      from t
     ) t
where n = 4;

. . .残りの列にも同じロジックを入力する必要があります。

于 2013-09-02T14:59:57.453 に答える