Tenho uma tabela onde desejo obter registros que MODIFIED_DATE
sejam iguais à contagem de2
Por exemplo: se para job_id
= 1234 houver 2 registros com data MODIFIED_DATE
= 04-10-2024
então ele deve filtrar esse registro.
Name Null? Type
---------------------- -------- --------------
JOB_PROGRESS_ID NOT NULL NUMBER
JOB_ID NUMBER
STATUS_ID NUMBER
HOTO_OFFERED_DATE DATE
HOTO_ACCEPTENCE_DATE DATE
LIT_ACCEPTENCE_DATE DATE
APPROVED_BY NVARCHAR2(200)
APPROVED_DATE DATE
REJECTED_BY NVARCHAR2(200)
REJECTED_DATE DATE
APPROV_REJECT_REMARK NVARCHAR2(255)
ABD_COMPLETED_LENGTH NUMBER
NE_SPAN_LENGTH NUMBER(10,4)
CREATED_BY NVARCHAR2(200)
CREATED_DATE NOT NULL DATE
MODIFIED_BY NVARCHAR2(200)
MODIFIED_DATE DATE
Se você quiser encontrar o
job_id
emodified_date
quando houver duas linhas na tabela com esses valores, então:O que, para os dados da amostra:
Saídas:
Se você quiser listar todas as colunas então:
Saídas:
Nota: A
DATE
sempre tem um componente de data e hora, então quando você está comparando valores, você está comparando com uma precisão de segundos (não dias). Se você estiver armazenando componentes de horário que não sejam meia-noite e quiser verificar se há duplicatas em um dia inteiro, então useTRUNC(modified_date)
em vez demodified_date
nas consultas.Saídas:
e:
Saídas:
violino
Não está claro o que a pergunta quer - a única coisa certa é que a string de data localizada causará problemas. Deveria ser
YYYY-MM-DD
.A questão pode ser como encontrar todas as linhas duplicadas, uma das linhas duplicadas ou trabalhos com duplicatas.
Para encontrar JobIDs com 2 ou mais linhas na mesma data, pode-se usar
GROUP BY
with HAVING` :Para encontrar todas as duplicatas em um dia, um CTE
COUNT() OVER
pode ser usado:Para encontrar apenas a linha extra,
ROW_NUMBER
pode ser usado: