Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak powtórzyć zapytanie w Oracle

Każde wywołanie DBMS_RANDOM.value() zwraca inną wartość . W związku z tym nie ma żadnej gwarancji że każde zgłoszenie znajdzie się między twoimi granicami. W rzeczywistości jest to statystycznie mało prawdopodobne. W konsekwencji przez większość czasu otrzymasz zwrócone NULL, ponieważ nie zdefiniowałeś żadnej gałęzi ELSE.

Oto alternatywne rozwiązanie, które generuje sto losowych wartości.

with dr as (
    select DBMS_RANDOM.value val
    from dual
    connect by level <= 100 
)
select dr.val
      , case when dr.val >= 0 and dr.val<=0.053 then 1
            when dr.val > 0.053 and dr.val <= 0.097 then 2
            when dr.val > 0.097 and dr.val <= 0.142 then 3
            else 4 
end random_groups
from dr
;

Biorąc pod uwagę sposób, w jaki twój kod definiuje granice gałęzi, większość random_groups będzie 4 .

Z opublikowanego przez Ciebie kodu (zabawki?) nie wynika jasno, jaka jest rola TEMP_TRT, więc postanowiłem to zignorować. Edytuj swoje pytanie aby dodać więcej szczegółów, jeśli to sprawia, że ​​jesteś nieszczęśliwy



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. policz liczbę wierszy występujących dla każdej daty w zakresie dat kolumny

  2. Ekskluzywna blokada stołu (odczytu) na Oracle 10g?

  3. Problemy ze zmianą daty za pomocą spustu w wyroczni

  4. Czy dozwolone jest używanie SELECT wewnątrz potokowej funkcji tabeli PL/SQL?

  5. ORA-14551:nie można wykonać operacji DML w zapytaniu