Немного опоздал на вечеринку, но в любом случае: вы также можете попытаться объединить столбцы, используя ||оператор . может быть неэффективным, поэтому я не буду использовать его в коде продукта, но для специального анализа все будет в порядке.
select count(distinct col1 || '_' || col2)
from schemaname.tablename
where some filters
Выбор разделителя примечаний может материи, то есть оба 'foo' || '_' || 'bar_baz'
и 'foo_bar' || '_' || 'baz'
дают 'foo_bar_baz'
и, таким образом, равны.В некоторых случаях это может быть проблемой, в некоторых случаях это настолько незначительно, что вы можете полностью пропустить разделитель.