Tenho o conjunto de dados abaixo que inclui 3 colunas:
- ID de inspeção
- Data de inspeção
- Número da falha
Observação: adicionei duas colunas adicionais, "Comentário" e "Ordem de classificação necessária", para ajudar a explicar o que estou tentando fazer.
O que preciso é classificar na ordem mostrada na coluna "Ordem de classificação necessária".
ID de inspeção | Data de inspeção | Número de falha | Comentário | Ordem de classificação necessária |
---|---|---|---|---|
1 | 01/01/2025 | 1 | Falha 1-inspeção 1 | 7 |
2 | 02/01/2025 | 2 | Falha2-inspeção 1 | 3 |
3 | 01/03/2025 | 1 | Falha 1-inspeção 2 | 6 |
4 | 01/04/2025 | 3 | Falha 3-inspeção 1 | 9 |
5 | 01/05/2025 | 2 | Falha2-inspeção 2 | 2 |
6 | 01/06/2025 | 1 | Falha 1-inspeção 3 | 5 |
7 | 01/07/2025 | 3 | Falha 3-inspeção 2 | 8 |
8 | 01/08/2025 | 1 | Falha 1-inspeção 4 | 4 |
9 | 01/09/2025 | 2 | Falha2-inspeção 3 | 1 |
O usuário realiza inspeções em datas diferentes. Queremos que o primeiro registro seja o mais recente, com base na Data de Inspeção. Isso nos dá o primeiro número de falha. Em seguida, queremos todos os outros registros para esse número de falha (ordenados por data de inspeção). Depois de todos os registros para esse número de falha, queremos o próximo número de falha com a data de inspeção mais recente, e assim por diante.
Na verdade, quero que os registros sejam agrupados por número de falha e ordenados pela data de inspeção.
Então o resultado deve ficar assim:
ID de inspeção | Data de inspeção | Número de falha | Comentário |
---|---|---|---|
9 | 2025-09-01 | 2 | Falha2-inspeção 3 |
5 | 2025-05-01 | 2 | Falha2-inspeção 2 |
2 | 2025-02-01 | 2 | Falha2-inspeção 1 |
8 | 2025-08-01 | 1 | Falha 1-inspeção 4 |
6 | 2025-06-01 | 1 | Falha 1-inspeção 3 |
3 | 2025-03-01 | 1 | Falha 1-inspeção 2 |
1 | 2025-01-01 | 1 | Falha 1-inspeção 1 |
7 | 2025-07-01 | 3 | Falha 3-inspeção 2 |
4 | 2025-04-01 | 3 | Falha 3-inspeção 1 |
Qualquer dica é bem-vinda!
Isso fornece a classificação correta:
Saídas:
Além disso, um pequeno comentário sobre a pergunta: você realmente deveria fornecer formatos de data não ambíguos em texto (não em capturas de tela).
9/01/2025
Pode ser setembro ou janeiro; aqui pode não importar, mas às vezes importa. AAAA-MM-DD é o ideal.Uma primeira abordagem intuitiva consiste em criar sua tabela de referência de "última inspeção para cada falha" (como uma tabela de subseleção, de modo que ela durará apenas a consulta) e,
em seguida, listar sua
inspections
tabela com uma pesquisa para essa última inspeção para obter a ordem:Mas com a ajuda das funções de janela você poderá fazer isso no local :
uma janela faz com que todas as linhas "vejam" seus irmãos (relacionados aos mesmos critérios, aqui
FaultNumber
),então qualquer linha com
FaultNumber
2 será capaz de obter omax(InspectionDate)
de todas as outras linhas com o mesmoFaultNumber
.Veja a demonstração em um violino .