Sql 允许我将具有多个值的列解组的查询

Sql 允许我将具有多个值的列解组的查询,sql,teradata,Sql,Teradata,我需要您的支持来组合一个查询,该查询允许我在一行中对具有多个值的列进行解组。在本例中,列condictions: 我有condictions表,表中有Hora-TRX列;Fecha-TRX;条件;Código客户 在Teradata查询中,我让它查找以下条件: WHERE CONDICIONES LIKE ANY ('%0800%', '%0801%', '%0805%', '%0806%', '%0821%'|; 但这些未分组的信息并没有把我扔掉 我需要的是返回以下结果的查询: 期望输出:

我需要您的支持来组合一个查询,该查询允许我在一行中对具有多个值的列进行解组。在本例中,列
condictions

我有
condictions
表,表中有
Hora-TRX列;Fecha-TRX;条件;Código客户

在Teradata查询中,我让它查找以下条件:

WHERE CONDICIONES LIKE ANY ('%0800%', '%0801%', '%0805%', '%0806%', '%0821%'|; 
但这些未分组的信息并没有把我扔掉

我需要的是返回以下结果的查询:

期望输出:

表:


最简单的方法可能是在筛选/聚合之前将所有值拆分为行:

WITH cte AS
 ( -- prepare the data
   SELECT "Fecha TRX"  AS pk, CONDICIONES AS delim_str
   FROM vt
 )
SELECT "Fecha TRX", CONDICIONES, Count(*)
FROM TABLE (StrTok_Split_To_Table(cte.pk, cte.delim_str, '?')
            RETURNS ("Fecha TRX" VARCHAR(20) -- should be the same datatype as input "Fecha TRX" 
                    ,tokennum INTEGER
                    ,CONDICIONES VARCHAR(10) )
           ) AS dt 
WHERE CONDICIONES IN ('0800', '0801', '0805', '0806', '0821'); 
GROUP BY 1,2;

规范化您的模式。请参阅(扰流板:是的)。不要张贴桌子的图片。将DDL和DML作为文本发布。@Gordon linoff,问题是数据库管理员同意这样存储信息。现在我们需要提取每个条件值,以了解客户何时拥有每个条件值。我们想制定几天的时间表,以了解每一天的影响。你能帮我吗???这是一个简单的任务,用于
strtok\u split\u to\u table
,但是它的语法有点复杂。你能提供更多细节吗?值“
”»“
Fecha TRX
的数据类型之间的分隔符是什么?@dnoeth,谢谢您的回答。分隔符是“”,数据类型是textThank,但有一个问题。在这里,“令牌”指的是什么?。。。。谢谢我这样问是因为TERADATA返回以下消息“作为单个语句执行。在dt中找不到失败的[5628:HY000]列标记。运行时间=00:00:00.015”抱歉,剪切粘贴和修改错误:-)非常感谢4u帮助。。!!!!!!格雷西亚斯!