计算组合属性的不同值

时间:2014-12-18 10:58:12

标签: sql teradata

我有一个包含很多列的表,我想计算两列KEY和SOURCE的不同组合。 为什么我不能使用这段代码:

COUNT(KEY, SOURCE) as cnt

我该怎么做?

顺便说一句,这只是查询中的一个属性。 查询结构是

Select
     Attr_1,...Attr_N,
     Measure_1...
     COUNT(KEY, SOURCE) as cnt
     Measure__N
FROM ...
Group BY  Attr_1,...Attr_N

我正在使用Teradata。

2 个答案:

答案 0 :(得分:1)

执行此操作的典型方法是将字符串与分隔符连接在一起:

select . . ., count(distinct concat(key, ':', source)) as numcombos

这并不完美。例如,它可能无法按照您希望的方式处理NULL值。并且,这假设列不包含冒号(尽管也可以使用不常见的字符或字符组合 - 例如'|')。

答案 1 :(得分:0)

Select
     KEY,
     SOURCE,
     COUNT(*) as cnt
FROM ...
Group BY KEY, SOURCE