Teradata 如何 select 第一次出现

Teradata how to select first occurrent

我有一个table类似于下图。在这个 table 中,我在 SESS_KEY 中有一些重复项。我只想要没有重复的行,或者如果有重复的行,我只想要 CALL_TRNSF_FLG 设置为 1 的行。我有手动创建 INCLUDE 字段来显示我想要的列 (1)。我怎样才能做到这一点?

感谢您的帮助!




示例数据如下:

INCLUDE SESS_KEY    SESS_CALL_ST_DT_TS  CONN_ID TLK_DUR HLD_DUR AFT_CALL_WRK_DUR    TRNSF_TLK_TM    TRNSF_HLD_TM    TRNSF_ACW_TM    CALL_TRNSF_FLG
0   24067A16-A24A-45BE-E3AA-7E0BFE7ECDA5    7/25/2016 9:07  0141028541267da5    918 57  26  ?   ?   ?   0
1   24067A16-A24A-45BE-E3AA-7E0BFE7ECDA5    7/25/2016 9:07  0521028304ed75f8    236 0   3   918 57  26  1
0   49FFAB03-C19C-4291-6BAB-267CC95E27CF    7/6/2016 17:25  014102854125f060    278 0   130 ?   ?   ?   0
1   49FFAB03-C19C-4291-6BAB-267CC95E27CF    7/6/2016 17:25  0521028304e98111    391 0   8   278 0   130 1
0   7CCBBF2F-6FBC-4812-BAB1-4E258B88C20A    7/12/2016 11:34 05200282b0814531    269 0   190 406 0   124 1
1   7CCBBF2F-6FBC-4812-BAB1-4E258B88C20A    7/12/2016 11:34 013b028225ed6484    406 0   124 ?   ?   ?   0
0   CA32F05E-5C8A-4849-63A4-15B2342081B8    7/6/2016 11:38  02420282b06776f9    256 0   114 297 0   67  1
1   CA32F05E-5C8A-4849-63A4-15B2342081B8    7/6/2016 11:38  014102854125ea06    297 0   67  ?   ?   ?   0
0   E75EF405-1C0D-45E4-EC97-88D3CD7B5E55    7/5/2016 15:03  1.41E+214   2,691   0   255 ?   ?   ?   0
1   E75EF405-1C0D-45E4-EC97-88D3CD7B5E55    7/5/2016 15:03  0243028304ee14a5    314 0   9   2,691   0   255 1
1   04F8CC43-710B-4E4D-D8A1-DAC45FB3FF24    7/19/2016 16:49 1.41E+14    123 100 43  ?   ?   ?   0
1   0AFB6070-9D95-47B0-B0AF-D34ED70FCE8E    7/22/2016 14:20 0243028304f1ffca    335 239 79  ?   ?   ?   0
1   13581E6A-A568-4993-098C-05233CF293AE    7/15/2016 11:22 014102854126375a    196 150 258 ?   ?   ?   0
1   1A6AE4BE-1858-4CB3-83B1-CFF7A9E88EF9    7/8/2016 19:09  02420282b068325e    120 0   0   ?   ?   ?   0
1   24CE6C11-AF85-4770-53B4-FE20200339DF    7/28/2016 12:47 0243028304f3401b    181 0   0   107 0   48  1
1   293F85F4-34BC-44B1-43B5-A6B3B8886FC8    7/1/2016 8:33   0521028304e8778e    70  0   21  149 0   1   1
1   2BD0216A-B3F3-4597-1CBD-095F8D291736    7/7/2016 8:41   0243028304ee83b2    1,037   0   187 ?   ?   ?   0
1   2C774BE2-5B26-47C0-B69F-69B04A63F879    7/25/2016 18:26 013b028225edd637    1,481   0   110 ?   ?   ?   0
1   3F43720B-B6AE-4335-4FB5-9275A952989F    7/11/2016 11:08 013b028225ed5830    155 0   0   ?   ?   ?   0
1   41B056DC-8D3F-425D-BD9E-10A3EB0E944D    7/27/2016 11:13 05200282b084c5d5    34  0   0   ?   ?   ?   0
1   420483AD-8586-45C7-68AB-675E50EF2B92    7/5/2016 11:03  013b028225ed2765    1,320   0   283 ?   ?   ?   0
1   43A14051-6EAA-4251-3FA1-F2FBAE6DB643    7/23/2016 12:16 05200282b083f410    359 0   143 ?   ?   ?   0
1   494F3EA9-EA47-4F7B-C795-61B8B23DA0FA    7/21/2016 9:27  02420282b06ac6c3    0   0   0   ?   ?   ?   0
1   4D743557-DE09-4007-D58C-EFB09EF6713C    7/29/2016 17:19 05200282b085844a    951 361 240 ?   ?   ?   0
1   546C0FD0-5445-44F8-0789-1FA62BB57CDB    7/15/2016 18:14 1.41E+59    686 0   60  ?   ?   ?   0
1   5487C587-D37C-4E5C-9A88-87A3978996CD    7/28/2016 18:51 014102854126a96d    833 0   534 ?   ?   ?   0
1   5AB8D65A-28C7-4CAD-5796-3A7B720A47F7    7/20/2016 8:56  0141028541265a9f    274 111 381 ?   ?   ?   0
1   6866B3F8-F953-43BF-9089-B1FE699DEE07    7/19/2016 16:25 05200282b0830349    35  0   180 ?   ?   ?   0
1   6A4566B3-71B9-47BB-75BC-37B6E644D704    7/19/2016 10:14 02420282b06a3d7b    0   0   0   ?   ?   ?   0
1   72D17A78-FA5D-42DA-E39A-F7B950C15E22    7/5/2016 18:05  02420282b0675679    606 0   167 ?   ?   ?   0
1   73657A2A-34B7-4921-E691-49827E46128D    7/20/2016 11:02 02420282b06a8ae8    31  0   264 ?   ?   ?   0
1   7520F825-DA7B-4D5F-7AA9-3ADD9AAC5BE7    7/5/2016 18:53  05200282b07fd5df    354 0   20  ?   ?   ?   0
1   76DA5FB6-3EDD-45E1-B8BB-C70EA1CB4E53    7/1/2016 10:07  0243028304ed7c74    132 0   20  105 0   66  1
1   810B9E66-AA32-4BB0-128D-8E3FFC86EB0E    7/22/2016 13:37 013b028225edc13d    1,621   109 34  ?   ?   ?   0
1   81402352-DE71-45E4-4EAD-C1FFE20F8288    7/11/2016 9:28  0521028304ea456a    38  0   0   71  0   0   1
1   81EA3AD7-B721-4718-9AB0-6FB005252F64    7/12/2016 17:15 013b028225ed6ad5    812 129 60  ?   ?   ?   0
1   870632C0-4D80-41DC-AD84-12972DBC5AF2    7/23/2016 14:20 0243028304f229ee    1,084   0   5   ?   ?   ?   0
1   886919E7-80DB-4E2C-D5B2-8B83420F4D27    7/26/2016 19:22 0243028304f2da42    533 465 155 ?   ?   ?   0
1   8A18B8A2-1405-446B-71BA-A3FBAC816C12    7/8/2016 16:13  013b028225ed4f72    318 237 0   ?   ?   ?   0
1   8A54DAD7-2745-4BFB-22BE-BF479C1A8710    7/7/2016 15:25  02420282b067da6c    42  0   94  104 0   38  1
1   8D5EB433-2D50-4A67-00AC-E768A549B56E    7/26/2016 14:35 0521028304edf692    55  0   0   ?   ?   ?   0
1   8F222904-EC4E-4395-D496-A25FB408AD95    7/29/2016 17:09 0243028304f3a5f0    88  0   137 ?   ?   ?   0
1   9310922F-D545-4E78-42B2-E1B508F5A436    7/7/2016 12:23  02420282b067c625    155 2   15  ?   ?   ?   1
1   A605BF7A-50E6-4114-1981-7B3988079B7E    7/6/2016 16:56  02420282b0679dfa    89  0   293 ?   ?   ?   0
1   AA23384F-C4DA-4357-3DAF-7CD8337831DD    7/9/2016 11:20  014102854126082a    138 0   210 ?   ?   ?   0
1   AF5AD7E2-7584-4ACD-B28E-1AB2DB87BDAA    7/21/2016 17:36 0243028304f1cda6    0   0   0   ?   ?   ?   0
1   B66D3851-83BE-4E0E-7D9B-1719E378905D    7/19/2016 12:41 0243028304f122cd    81  0   0   ?   ?   ?   0
1   BB2FA3CD-AB6D-42BD-3CB7-EEC27E3403BF    7/15/2016 14:38 0243028304f0753e    65  0   195 92  3   29  1
1   BBA4031A-7876-4614-F9BC-718A6D8A16A7    7/13/2016 17:42 0521028304eb1a47    163 0   85  ?   ?   ?   0
1   BCF2B7D8-CBD0-497F-EEA7-FDEC46EFEEBE    7/7/2016 12:09  0521028304e9acaa    44  0   8   ?   ?   ?   0
1   BE9386B6-424E-40F9-67A1-A56EF6C18B77    7/27/2016 20:03 013b028225edecc5    1   0   0   ?   ?   ?   0
1   C0F0EF71-F52B-4D10-E9B4-DA1AF4343CC7    7/11/2016 15:21 05200282b08111ee    49  0   61  368 0   597 1
1   C84FCA28-2372-4F8B-52B1-4BC5E9AD128B    7/19/2016 13:06 013b028225eda06c    59  0   32  162 0   0   1
1   C8B3CC50-DEC3-4F24-D0A2-E32A03AFA786    7/13/2016 13:22 05200282b0819c4d    126 0   0   ?   ?   ?   0
1   CC119F61-A70F-4DB3-7C8C-DCE9A1C3BCB5    7/27/2016 9:48  02420282b06c1330    0   0   0   ?   ?   ?   0
1   D57D43C7-F9F0-42B9-C6B6-23B1414D9F12    7/14/2016 15:04 05200282b081ee2a    36  0   17  ?   ?   ?   0
1   E438B480-8F98-469C-3899-E6F10DD1F755    7/5/2016 20:12  02420282b0675cea    3,874   163 7   ?   ?   ?   0
1   F223F1F4-F50D-41F6-DA9F-46EA2972F394    7/27/2016 20:13 05200282b084f966    417 0   6   ?   ?   ?   0
1   FB3B0CB1-89D8-4B47-E4BA-465E57D52B0D    7/14/2016 14:21 02420282b0695b07    138 0   2   ?   ?   ?   0

您可以像这样过滤您想要的行:

WHERE
    CONN_ID NOT IN (
        SELECT 
            MIN(CONN_ID) 
        FROM 
            <<your_table>> 
        GROUP BY 
            SESS_KEY 
        HAVING
            count(*) > 1
    )

假设,那对:sess_key,conn_id 是唯一的。否则,您应该找到唯一的一组列并按它进行过滤。

您好
您可以查询,

Using JOINS

select t1.* from table_name t1
join
(select count(*),SESS_KEYfrom table_name 
  group by  SESS_KEYhaving count(*) > 1 ) t2
on t1.SESS_KEY=t2.SESS_KEY;

Using WHERE clause

select t1.* from table_name t1,
(select count(*),SESS_KEYfrom table_name 
  group by  SESS_KEYhaving count(*) > 1 ) t2
where t1.SESS_KEY=t2.SESS_KEY;

这为您提供了 SESS_KEY 列中的所有重复项

To Update

merge into table_name t1
using 
 (select count(*),SESS_KEYfrom table_name 
 group by  SESS_KEYhaving count(*) > 1 ) t2
 on t1.SESS_KEY=t2.SESS_KEY
when matched then
update set
CALL_TRNSF_FLG=1;

使用 MERGE 语句更新 table

SELECT *
FROM tab
QUALIFY 
  -- rows that does not have duplicates
   COUNT(*) 
   OVER (PARTITION BY SESS_KEY) = 1 
  -- the ones with CALL_TRNSF_FLG set to 1
OR CALL_TRNSF_FLG  = 1 

如果 CALL_TRNSF_FLG = 1 可能有多行,而您每个会话只需要一行:

QUALIFY 
   ROW_NUMBER(*)
   OVER (PARTITION BY SESS_KEY
         ORDER BY CALL_TRNSF_FLG DESC) = 1