Comando DUPLICATES
Informações do conceito
Detecta quando valores duplicados ou registros inteiros duplicados existem em uma tabela do Analytics.
Sintaxe
DUPLICATES <ON> {campo_chave <D> <...n>|<ON> ALL <EXCLUDE nome_campo <...n>>} <OTHER campo <...n>|OTHER ALL <EXCLUDE nome_campo <...n>>> <UNFORMATTED> <ADDGROUP> <PRESORT> <IF teste> <WHILE teste> <FIRST intervalo|NEXT intervalo> <APPEND> <OPEN> <TO {SCREEN|nome_tabela|nome_arquivo|PRINT}> <LOCAL> <HEADER texto_cabeçalho> <FOOTER texto_rodapé> <ISOLOCALE código_localidade>
Parâmetros
| Nome | Descrição |
|---|---|
| ON campo_chave D <...n> | ON ALL |
O campo ou campos-chave, ou a expressão, onde será verificada a existência de duplicidades.
|
| EXCLUDE nome_campo opcional |
Válido apenas ao testar duplicidades usando ON ALL. O campo ou os campos a serem excluídos do comando. O EXCLUDE permite ajustar o ON ALL excluindo os campos especificados. O EXCLUDE deve estar logo após do ON ALL. Por exemplo: ON ALL EXCLUDE campo_1 campo_2 |
| OTHER campo <...n> | OTHER ALL opcional |
Um ou mais campos adicionais a serem incluídos na saída.
|
| EXCLUDE nome_campo opcional |
Válido apenas ao usar OTHER ALL. O campo ou os campos a serem excluídos do comando. O EXCLUDE permite ajustar o OTHER ALL excluindo os campos especificados. O EXCLUDE deve estar logo após do OTHER ALL. Por exemplo: OTHER ALL EXCLUDE campo_1 campo_2 |
|
UNFORMATTED opcional |
Suprime os cabeçalhos e as quebras de página quando os resultados são enviados a um arquivo. |
|
ADDGROUP opcional |
Inclua o campo Número do grupo (GROUP_NUM) na tabela de saída. O campo Número do grupo atribui um número incrementado sequencialmente a cada grupo único de duplicidades. Dica A capacidade de fazer referência a grupos de duplicidades por número pode ser útil quando você analisa dados na tabela de saída. |
|
PRESORT opcional |
Ordena a tabela pelo campo-chave antes de executar o comando. Nota Você não pode usar PRESORT dentro do comando GROUP. |
|
IF teste opcional |
Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado apenas nos registros que atendem à condição. Nota O parâmetro IF é avaliado apenas em relação aos registros restantes em uma tabela depois da aplicação dos parâmetros de escopo (WHILE, FIRST, NEXT). |
|
WHILE teste opcional |
Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado até que a condição seja avaliada como falsa ou o fim da tabela seja alcançado. Nota Se você usar WHILE juntamente com FIRST ou NEXT, o processamento de registros será interrompido assim que um limite for alcançado. |
|
FIRST intervalo | NEXT intervalo opcional |
O número de registros a ser processado:
Use intervalo para especificar o número de registros a serem processados. Se você omitir FIRST e NEXT, todos os registros serão processados por padrão. |
|
APPEND opcional |
Anexa a saída do comando ao final de um arquivo existente, em vez de sobrescrevê-lo. Nota Você deve garantir que a estrutura da saída do comando e o arquivo existente são idênticos:
O Analytics anexa a saída a um arquivo existente, seja qual for sua estrutura. Se a estrutura da saída e do arquivo existente não corresponderem, o resultado poderá ser dados misturados, ausentes ou incorretos. |
|
OPEN opcional |
Abre a tabela criada pelo comando após a execução do comando. Válido apenas se o comando criar uma tabela de saída. |
|
TO SCREEN | nome_tabela | nome_arquivo | PRINT opcional |
A localização para onde enviar os resultados do comando:
|
|
LOCAL opcional |
Salva o arquivo de saída no mesmo local que o projeto do Analytics. Nota Aplicável apenas na execução de um comando em uma tabela de servidor com um campo de saída que é uma tabela do Analytics. O parâmetro LOCAL deve seguir imediatamente o parâmetro TO. |
|
HEADER texto_cabeçalho opcional |
O texto a ser inserido na parte superior de cada página de um relatório. texto_cabeçalho deve ser especificado como uma cadeia entre aspas. O valor substitui a variável de sistema HEADER do Analytics. |
|
FOOTER texto_rodapé opcional |
O texto a ser inserido na parte inferior de cada página de um relatório. texto_rodapé deve ser especificado como uma cadeia entre aspas. O valor substitui a variável de sistema FOOTER do Analytics. |
| ISOLOCALE código_local opcional |
Nota Aplicável apenas à edição Unicode do Analytics. A localidade do sistema no formato idioma_país. Por exemplo, para usar francês canadense, insira fr_ca. Use os códigos a seguir:
Se você não usar ISOLOCALE, a localidade do sistema padrão será usada. |
Variáveis de saída do Analytics
| Nome | Contém |
|---|---|
| GAPDUPn |
O número total de grupos de falhas, duplicidades ou duplicidades parciais identificados pelo comando. |
Exemplos
Testar se há valores duplicados em um campo
O exemplo a seguir:
- testa se há valores duplicados no campo Número_Fatura
- exibe qualquer registro que contenha números de faturas duplicados em uma nova tabela do Analytics
DUPLICATES ON Número_Fatura OTHER Número_Fornecedor Data_Fatura Valor_Fatura PRESORT TO "Duplicate_Invoices.FIL"
Testar se há valores duplicados em dois ou mais campos em combinação
O exemplo a seguir:
- testa se há combinações de valores duplicadas nos campos Número_Fatura e Número_Fornecedor
- exibe qualquer registro que contenha o mesmo número de fatura e o mesmo número de fornecedor em uma nova tabela do Analytics
A diferença entre esse teste e o teste anterior é que um número de fatura idêntico de dois fornecedores diferentes não é reportado como um falso positivo.
DUPLICATES ON Número_Fatura Número_Fornecedor OTHER Data_Fatura Valor_Fatura PRESORT TO "Duplicate_Invoices.FIL"
Testar se há registros duplicados
Os exemplos a seguir:
- testam se há valores duplicados em todos os campos de uma tabela Inventário
- gravam todos os registros inteiramente idênticos em uma nova tabela do Analytics
DUPLICATES ON NumProd ClassProd Local DescProd StatusProd CustoUnidade DataCusto PreçoVenda DataPreço PRESORT TO "Itens_inventário_duplicados.FIL"
Você pode simplificar a sintaxe usando ALL:
DUPLICATES ON ALL PRESORT TO "Itens_inventário_duplicados.FIL"
Filtrar a tabela de saída de duplicidades por número de grupo
Você usa vários campos-chave combinados para testar a existência de registros duplicados em uma tabela de contas a pagar:
- número do fornecedor
- número da fatura
- data da fatura
- valor da fatura
Você quer filtrar a tabela de saída de duplicidades resultante para que apenas alguns dos grupos de duplicidades passem por processamento adicional.
Criar um filtro usando a combinação de campos-chave seria trabalhoso. Por exemplo:
SET FILTER TO ((Num_Fornecedor = "11475") AND (Num_Fatura = "8752512") AND (Data_Fatura = `20191021`) AND (Valor_Fatura = 7125,80)) OR ((Num_Fornecedor = "12130") AND (Num_Fatura = "589134") AND (Data_Fatura = `20191117`) AND (Valor_Fatura = 10531,71)) OR ((Num_Fornecedor = "13440") AND (Num_Fatura = "5518912") AND (Data_Fatura = `20191015`) AND (Valor_Fatura = 11068,20))
Em vez disso, você pode obter o mesmo resultado criando um filtro baseado no número do grupo:
SET FILTER TO MATCH(GROUP_NUM; 3 ;8; 11)
Observações
Para obter mais informações sobre o funcionamento desse comando, consulte Verificar duplicidades.
Ordenar e duplicidades
Normalmente, você somente deve executar o comando de duplicidades usando um ou mais campos-chave ordenados. Os valores duplicados em um campo-chave só serão encontrados se estiverem imediatamente adjacentes.
Se você executar o comando de duplicidades em um campo-chave não ordenado, os valores duplicados não adjacentes não serão relatados como duplicidades. Se existirem dois ou mais clusters do mesmo valor duplicado, eles são relatados como duplicidades, mas em grupos separados.
Dependendo do objetivo da análise, pode fazer sentido executar um comando de duplicidades usando um campo-chave não ordenado. Por exemplo, pode ser necessário encontrar apenas os valores duplicados imediatamente adjacentes na tabela de origem, e ignorar os valores duplicados não adjacentes.