Función WIDTH_BUCKET( ) en Oracle

WIDTH_BUCKET( ) es una función matemática utilizada en Oracle y PostgreSQL. Como sugiere el nombre, width_bucket significa dividir el histograma en cubos de igual ancho, es decir, cada cubo tiene el mismo tamaño/intervalo. Esta función toma cuatro entradas que son la expresión, el límite inferior, el límite superior de la expresión y el número de grupos en los que queremos dividir el histograma. Entonces, después de procesar la expresión, se devuelve el número de depósito que contiene el valor requerido. Por lo tanto, usando la función width_bucket obtenemos un histograma de igual ancho pero puede variar en altura.

La función width_bucket es una función de agrupación muy útil.

Sintaxis:

WIDTH_BUCKET(expression, hist_min_value,
hist_max_value, num_buckets)

Parámetros:

  • expresión: Una expresión numérica que se agrupará en varios intervalos. Esta expresión debe evaluar un valor numérico o de fecha y hora o un valor que se puede convertir implícitamente en un valor numérico o de fecha y hora. El valor debe estar dentro del rango de -(2^53 – 1) a 2^53 – 1 (inclusive).
  • hist_min_value: una expresión de valor numérico o de fecha y hora que proporciona el límite inferior/valor mínimo del depósito.
  • hist_max_value: una expresión de valor numérico o de fecha y hora que proporciona el límite superior/valor máximo del depósito.
  • num_buckets: Una expresión INTEGER mayor que 0 especifica el número de cubos en los que queremos dividir nuestra expresión.

NOTA: MySQL y SQL Server no admiten WIDTH_BUCKET, pero Oracle y PostgreSQL admiten la sintaxis ANSI SQL para WIDTH_BUCKET.

Ahora tome un ejemplo, para crear un histograma de cuatro dólares en la columna de salario del empleado que tenga salarios en el rango de 10,000 y 1,00,000 rupias. La función devuelve el número de depósito como – GRUPO DE VENTAS para cada valor del conjunto.

Paso 1: Creamos una Tabla. Hemos creado la tabla que consta de 3 columnas: identificación del empleado, nombre del empleado y salario del empleado. Para esto, usamos el siguiente comando para crear una tabla llamada GeeksforGeeks_demo. 

Consulta:

create table geeksforgeeks_demo(employee_id number,
employee_name varchar(20),employee_salary number);

Producción:

Paso 2:  Esta es la consulta para Insertar filas en la tabla.

Consulta:

insert into GeeksforGeeks_demo values(1, 'Chandler', 75000);
insert into GeeksforGeeks_demo values(2, 'Erica', 12500);
insert into GeeksforGeeks_demo values(3, 'Ron', 71000);
insert into GeeksforGeeks_demo values(4, 'Lucy', 52000);
insert into GeeksforGeeks_demo values(5, 'Adam', 22000);
insert into GeeksforGeeks_demo values(6, 'Steve', 48500);
insert into GeeksforGeeks_demo values(7, 'Monica', 84800);
insert into GeeksforGeeks_demo values(8, 'Rachel', 65000);
insert into GeeksforGeeks_demo values(9, 'Joey', 91500);
insert into GeeksforGeeks_demo values(10, 'Phoebe', 36000);
insert into GeeksforGeeks_demo values(11, 'Mike', 18000);
insert into GeeksforGeeks_demo values(12, 'Liam', 46000);

Producción:

Paso 3: Ver los datos insertados

Consulta:

select * from GeeksforGeeks_demo;

Producción:

Paso 4: consulta la tabla llamando a WIDTH_BUCKET( ):

Consulta:

select 
      employee_id,
      employee_name, 
      employee_salary,  
      width_bucket(employee_salary,
       10000, 100000, 4) salary_group
from GeeksforGeeks_demo
order by salary_group;

Producción:

 

Publicación traducida automáticamente

Artículo escrito por gayatribkar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *