我有一个包含很多列的表,我想计算两列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。
答案 0 :(得分:1)
执行此操作的典型方法是将字符串与分隔符连接在一起:
select . . ., count(distinct concat(key, ':', source)) as numcombos
这并不完美。例如,它可能无法按照您希望的方式处理NULL
值。并且,这假设列不包含冒号(尽管也可以使用不常见的字符或字符组合 - 例如'|'
)。
答案 1 :(得分:0)
Select
KEY,
SOURCE,
COUNT(*) as cnt
FROM ...
Group BY KEY, SOURCE