A cláusula “Partição por” ou função do PostgreSQL pertence à categoria de funções da janela. As funções da janela do PostgreSQL são as que são capazes de realizar cálculos que abrangem várias linhas de uma coluna, mas não todas as linhas. Isso significa que, diferentemente das funções agregadas do PostGresql, as funções do Windows não produzem necessariamente um único valor como saída. Hoje, desejamos explorar o uso da cláusula ou função da “partição por”.
PostgreSQL Partition por exemplos no Windows 10:
Esta função exibe a saída na forma de partições ou categorias em relação ao atributo especificado. Esta função simplesmente leva um dos atributos da tabela PostGresql como uma entrada do usuário e depois exibe a saída de acordo. No entanto, a cláusula ou função da Partição por PostgreSQL é a mais adequada para grandes conjuntos de dados e não para aqueles em que você não pode identificar partições ou categorias distintas. Você terá que passar pelos dois exemplos discutidos abaixo para entender o uso dessa função de uma maneira melhor.
Exemplo # 1: Extraindo a temperatura corporal média dos dados dos pacientes:
Para este exemplo em particular, nosso objetivo é descobrir a temperatura corporal média dos pacientes da tabela "paciente". Você pode se perguntar se podemos simplesmente usar a função "AVG" do PostgreSQL para fazer isso, então por que estamos usando a cláusula "partição por" aqui. Bem, nossa tabela "paciente" também consiste em uma coluna chamada "doc_id", que existe para especificar qual médico tratou um paciente em particular. No que diz respeito a este exemplo, estamos interessados em ver as temperaturas médias do corpo dos pacientes tratados por cada médico.
Essa média será diferente para cada médico, pois eles atenderam a diferentes pacientes com temperaturas corporais diferentes. É por isso que o uso da cláusula "Partição por" é obrigatório nesta situação. Além disso, vamos usar uma tabela já existente para demonstrar este exemplo. Você também pode criar um novo se quiser. Você poderá entender bem este exemplo, passando pelas seguintes etapas:
Etapa 1: visualizando os dados que a tabela do paciente possui:
Como já afirmamos que vamos usar uma tabela já existente para este exemplo, tentaremos exibir seus dados primeiro para que você possa dar uma olhada nos atributos que esta tabela tem. Para isso, executaremos a consulta mostrada abaixo:
# Selecione * do paciente;Você pode ver na imagem a seguir que a tabela "paciente" tem quatro atributos, eu.e., PAT_ID (refere -se ao ID do paciente), PAT_NAME (mantém o nome do paciente), PAT_TEMP (refere -se à temperatura corporal do paciente) e doc_id (refere -se à identidade do médico que tratou um paciente em particular).
Etapa 2: Extraindo a temperatura corporal média dos pacientes em relação ao médico que os atendiu:
Para descobrir a temperatura corporal média dos pacientes particionados pelo médico que os atendiu, executaremos a consulta declarada abaixo:
# Selecione PAT_ID, PAT_NAME, PAT_TEMP, DOC_ID, AVG (PAT_TEMP) sobre (partição por doc_id) do paciente;Esta consulta calculará a média da temperatura dos pacientes relativa ao médico que os atendiu e depois a exibe junto com os outros atributos no console, como mostrado na imagem a seguir:
Como tínhamos cinco IDs de médico diferentes, conseguimos calcular as médias de cinco partições diferentes através desta consulta, eu.e., 99.5, 99, 101.5, 99.5 e 105.5, respectivamente.
Exemplo # 2: Extraindo os preços médios, mínimos e máximos pertencentes a cada tipo de prato dos dados da refeição:
Neste exemplo, queremos descobrir os preços médios, mínimos e máximos de cada prato em relação ao tipo de prato da mesa de “refeição”. Novamente, usaremos uma tabela já existente para demonstrar este exemplo; No entanto, você está livre para criar uma nova tabela se quiser. Você terá uma idéia mais clara do que estamos falando depois de seguir as etapas mencionadas abaixo:
Etapa 1: visualizando os dados que a mesa de refeições possui:
Como já afirmamos que vamos usar uma tabela já existente para este exemplo, tentaremos exibir seus dados primeiro para que você possa dar uma olhada nos atributos que esta tabela tem. Para isso, executaremos a consulta mostrada abaixo:
# Selecione * da refeição;Você pode ver na imagem a seguir que a tabela de “refeição” tem três atributos, eu.e., Dish_name (refere -se ao nome do prato), DISH_TYPE (mantém o tipo ao qual o prato pertence, eu.e., Curso principal, iniciante ou sobremesa) e DISH_PRICE (refere -se ao preço do prato).
Etapa 2: Extraindo o preço médio do prato do prato em relação ao tipo de prato ao qual pertence:
Para descobrir o preço médio do prato do prato particionado pelo tipo de prato ao qual ele pertence, executaremos a consulta declarada abaixo:
# Selecione DISH_NAME, DISH_TYPE, DISH_PRICE, AVG (DISH_PRICE) sobre (Partição por DISH_TYPE) da refeição;Esta consulta calculará o preço médio dos pratos em relação ao tipo de prato ao qual eles pertencem e depois a exibirão junto com os outros atributos no console, como mostrado na imagem a seguir:
Como tínhamos três tipos de pratos diferentes, conseguimos calcular as médias de três partições diferentes através desta consulta, eu.e., 155, 241.67 e 261.67, respectivamente.
Etapa # 3: Extraindo o preço mínimo do prato do prato em relação ao tipo de prato ao qual pertence:
Agora, por motivos semelhantes, podemos extrair o preço mínimo do prato em relação a cada tipo de prato simplesmente executando a consulta declarada abaixo:
# Selecione Dish_name, Dish_Type, Dish_Price, min (Dish_Price) sobre (Partição por Dish_Type) da refeição;Esta consulta calculará o preço mínimo dos pratos em relação ao tipo de prato ao qual eles pertencem e depois a exibirão junto com os outros atributos no console, como mostrado na imagem a seguir:
Etapa 4: Extraindo o preço máximo do prato do prato em relação ao tipo de prato ao qual pertence:
Finalmente, da mesma maneira, podemos extrair o preço máximo do prato em relação a cada tipo de prato simplesmente executando a consulta declarada abaixo:
# Selecione Dish_Name, DISH_TYPE, DISH_PRICE, MAX (DISH_PRICE) sobre (Partição por Dish_Type) da refeição;Esta consulta calculará o preço máximo dos pratos em relação ao tipo de prato ao qual eles pertencem e depois a exibirão junto com os outros atributos no console, como mostrado na imagem a seguir:
Conclusão:
Este artigo pretendia fornecer uma visão geral do uso da função PostgreSql “Partition By”. Para isso, primeiro apresentamos você às funções da janela PostGresql, seguidas de uma breve descrição da função "Partition by". Finalmente, para elaborar o uso dessa função no PostGresql no Windows 10, apresentamos a você dois exemplos diferentes com a ajuda da qual você pode aprender facilmente o uso desta função PostgreSQL no Windows 10.