[英]Delete duplicated values
我有一個名為 ac_eeb 的表,它有近 3000 條記錄。 我想將 TIPCOL 列添加到此表中,我可以將其加入 function 以從 ac_sep 獲取。 但是,當我進行連接時,結果給了我比必要的更多的記錄,我看到它給了我重復的值......如何通過我使用的初始代碼刪除重復的值?
SELECT
emp_codigo as NUMEMP /* Código da Empresa SIM*/
, CASE
when categoriaesocial = '101' then 'CLT'
when categoriaesocial = '901' then 'Estagiário'
when categoriaesocial = '103' then 'Aprendiz'
when categoriaesocial = '722' then 'Estatutário'
end
as TIPCOL /* Tipo Colaborador Sim*/
, epg_codigo as NUMCAD /* Cadastro do Colaborador SIM*/
, dtinicial as INIETB /* Data de Início da Estabilidade SIM */
, dtfinal as FIMETB /* Data Final da Estabilidade NÃO */
, esb_codigo as CODETB /* Código da Estabilidade SIM */
FROM
(SELECT stg.ac_eeb.emp_codigo, stg.ac_eeb.esb_codigo, stg.ac_eeb.epg_codigo,
stg.ac_eeb.dtinicial, stg.ac_eeb.dtfinal, stg.ac_sep.categoriaesocial
FROM stg.ac_eeb
JOIN stg.ac_sep
ON ac_eeb.epg_codigo = ac_sep.epg_codigo) AS Estabilidades;
您在此查詢中使用的聯接沒有任何 where 條件。 因此,查詢的 output 將是表 ac_eeb 和 ac_sep 的笛卡爾積,其中包含重復值。 為避免這種情況,請使用 where 子句過濾掉不必要的數據
重復可能是由於 ac_sep 對某些 epg_codigo 值有不止一個記錄。 如果您知道 ac_sep.categoriasocial 對於具有相同 epg_codigo 的每一行都是相同的,那么您可以在進行聯接之前使用子查詢來獲取唯一值; 像這樣:
SELECT
emp_codigo as NUMEMP /* Código da Empresa SIM*/
, CASE
when categoriaesocial = '101' then 'CLT'
when categoriaesocial = '901' then 'Estagiário'
when categoriaesocial = '103' then 'Aprendiz'
when categoriaesocial = '722' then 'Estatutário'
end
as TIPCOL /* Tipo Colaborador Sim*/
, epg_codigo as NUMCAD /* Cadastro do Colaborador SIM*/
, dtinicial as INIETB /* Data de Início da Estabilidade SIM */
, dtfinal as FIMETB /* Data Final da Estabilidade NÃO */
, esb_codigo as CODETB /* Código da Estabilidade SIM */
FROM
(SELECT stg.ac_eeb.emp_codigo, stg.ac_eeb.esb_codigo, stg.ac_eeb.epg_codigo,
stg.ac_eeb.dtinicial, stg.ac_eeb.dtfinal, stg.ac_sep.categoriaesocial
FROM stg.ac_eeb
JOIN (select distinct
epg_codigo
, categoriaesocial
from stg.ac_sep
) as ac_sep
ON ac_eeb.epg_codigo = ac_sep.epg_codigo) AS Estabilidades;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.