Grupo de Postgres por hora con el tiempo

Grupo de Postgres por hora con el tiempo
Se utiliza un grupo Postgres por cláusula para dividir las filas obtenidas de la declaración selecta en los grupos. Al usar un grupo por cláusula, podemos incluir los datos al hacer que aparezcan en la tabla a la vez. Esta cláusula siempre contiene un nombre de columna. Grupo de Postgres por hora con tratos de tiempo para agrupar los datos dependiendo de la hora de la marca de tiempo.

Sintaxis

SELECCIONAR
columna1,
Función (columna2)
DE
Name_of_table
AGRUPAR POR
Columna1;

También podemos usar más de una columna en el comando.

Grupo por implementación de cláusula

Para explicar el concepto de un grupo por cláusula, considere la tabla a continuación, llamado Cliente. Esta relación se crea para contener los salarios de cada cliente.

>> seleccionar * del cliente;

Aplicaremos un grupo por cláusula utilizando una sola columna 'salario'. Una cosa que debo mencionar aquí es que la columna que usamos en la instrucción SELECT debe mencionarse en el grupo por cláusula. De lo contrario, causará un error, y el comando no se ejecutará.

>> Seleccionar salario del grupo de clientes por salario;

Puede ver que la tabla resultante muestra que el comando ha agrupado esas filas que tienen el mismo salario.

Ahora hemos aplicado esa cláusula en dos columnas mediante el uso de un recuento de funciones incorporado () que cuenta el número de filas aplicadas por la instrucción SELECT, y luego la cláusula del grupo por cláusula se aplica para filtrar las filas combinando las mismas filas salariales. Puede ver que las dos columnas que se encuentran en la instrucción SELECT también se usan en la cláusula de grupo por grupo.

>> Seleccionar salario, contar (salario) del grupo de clientes por salario;

Grupo por hora

Cree una tabla para demostrar el concepto de un grupo por cláusula en una relación de Postgres. La tabla llamada class_time se crea con el ID de columnas, el tema y C_Period. Tanto la identificación como el sujeto tienen una variable de tipo de datos de entero y varchar, y la tercera columna contiene el tipo de datos de la función de tiempo incorporada, ya que necesitamos aplicar el grupo por cláusula en la tabla para obtener la porción de hora desde todo el tiempo declaración.

>> Crear tabla class_time (ID entero, asunto varchar (10), c_period time);

Después de crear la tabla, insertaremos datos en las filas utilizando una instrucción Insertar. En la columna C_Period, hemos agregado tiempo utilizando el formato estándar de tiempo 'HH: MM: SS' que debe estar encerrado en comas invertidas. Para hacer el grupo de cláusula trabajando en esta relación, debemos ingresar datos para que algunas filas en la columna C_Period coincidan entre sí para que estas filas puedan agruparse fácilmente.

>> insertar en class_time (id, asunto, c_period) valores (2, 'matemáticas', '03:06:27'), (3, 'inglés', '11: 20: 00 '), (4,' s.Estudios ', '09: 28: 55'), (5, 'art', '11: 30: 00 '), (6,' persa ', '00: 53: 06');

Se insertan 6 filas. Veremos los datos insertados utilizando una instrucción SELECT.

>> seleccionar * de class_time;

Ejemplo 1

Para continuar con la implementación de un grupo por cláusula por la parte de la hora de la marca de tiempo, aplicaremos un comando seleccionado en la tabla. En esta consulta, se utiliza una función date_trunc. Esta no es una función creada por el usuario, pero ya está presente en Postgres para ser utilizado como una función incorporada. Tomará la palabra clave de 'hora' porque nos preocupa obtener una hora y, en segundo lugar, la columna C_Period como parámetro. El valor resultante de esta función incorporada utilizando un comando SELECT estará atravesando la función de conteo (*). Esto contará todas las filas resultantes, y luego todas las filas se agruparán.

>> seleccione Date_trunc ('Hour', C_Period), Count (*) del grupo class_time por 1;

Date_trunc () La función es la función truncada que se aplica a la marca de tiempo para truncar el valor de entrada en granularidad como segundos, minutos y horas. Entonces, de acuerdo con el valor resultante obtenido a través del comando, dos valores que tienen las mismas horas se agrupan y se cuentan dos veces.

Una cosa debe tenerse en cuenta aquí: la función truncada (hora) solo se ocupa de la porción de la hora. Se centra en el valor más izquierdo, independientemente de los minutos y los segundos utilizados. Si el valor de la hora es el mismo en más de un valor, la cláusula de grupo creará un grupo de ellos. Por ejemplo, 11:20:00 y 11:30:00. Además, la columna de date_trunc recorta la porción de hora de la marca de tiempo y muestra la parte de la hora solo mientras el minuto y el segundo es '00'. Porque al hacer esto, la agrupación solo se puede hacer.

Ejemplo 2

Este ejemplo trata el uso de una cláusula de grupo por cláusula a lo largo de la función date_trunc () en sí misma. Se crea una nueva columna para mostrar las filas resultantes con la columna de conteo que contará las ID, no todas las filas. En comparación con el último ejemplo, el signo de asterisco se reemplaza con la ID en la función de recuento.

>> seleccione Date_trunc ('Hour', C_Period) como Time_table, Count (id) como Count desde class_time Group por date_trunc ('Hour', C_Period);

Los valores resultantes son los mismos. La función Trunc ha truncado la porción de hora desde el valor de tiempo, y de lo contrario, la parte se declara como cero. De esta manera, la agrupación por hora se declara. El PostgreSQL obtiene el tiempo actual del sistema en el que ha configurado la base de datos PostgreSQL.

Ejemplo 3

Este ejemplo no contiene la función trunc_date (). Ahora buscaremos horas desde el momento utilizando una función de extracto. Las funciones de extracto () funcionan como el trunc_date para extraer la porción relevante teniendo la hora y la columna dirigida como parámetro. Este comando es diferente al trabajar y mostrar los resultados en aspectos de proporcionar solo horarios. Elimina la porción de minutos y segundos, a diferencia de la función trunc_date. Use el comando Seleccionar para seleccionar ID y sujeto con una nueva columna que contiene los resultados de la función de extracto.

>> seleccionar id, sujeto, extraer (hora de c_period) como hora de class_time;

Puede observar que cada fila se muestra teniendo las horas de cada vez en la fila respectiva. Aquí no hemos utilizado el grupo por cláusula para elaborar el funcionamiento de una función de extracto ().

Al agregar un grupo por cláusula usando 1, obtendremos los siguientes resultados.

>> seleccione Extracto (hora de C_Period) como hora del grupo Class_Time por 1;

Como no hemos utilizado ninguna columna en el comando select, solo se mostrará la columna de la hora. Esto contendrá las horas en el formulario agrupado ahora. Tanto 11 como 9 se muestran una vez para mostrar el formulario agrupado.

Ejemplo 4

Este ejemplo se ocupa del uso de dos columnas en la instrucción SELECT. Uno es el C_Period, para mostrar la hora, y el otro se crea recientemente como una hora para mostrar solo las horas. El grupo por cláusula también se aplica al c_period y a la función de extracto.

>> Seleccione _Period, extraer (hora de c_period) como hora del grupo class_time por extracto (hora de c_period), c_period;

Conclusión

El artículo 'Postgres Group by Hour with Time' contiene la información básica sobre el grupo por cláusula. Para implementar el grupo por cláusula con hora, necesitamos usar el tipo de datos de tiempo en nuestros ejemplos. Este artículo se implementa en la base de datos PostgreSQL PSQL Shell instalado en Windows 10.