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帮助。。!!!!!!格雷西亚斯!