例如,如果我有一个表格如下: [cat] [paramA] [paramB]
并希望构造一个输出查询 [cat] [不同paramA / paramB对的计数]。
例如
cat paramA paramB
001 A B
001 A C
001 B B
001 A C
002 A A
desired output:
cat count
001 3
002 1
我通过参数使用[cat]作为我的组,并且不知道如何在此框架中对这对值进行不同的工作。
答案 0 :(得分:2)
一种方法是在cat,paramA和paramB上选择distinct。然后根据结果做你的小组:
select cat, count(*) from
(select distinct * from data) as tmp
group by cat
答案 1 :(得分:0)
您可以连接paramA和paramB来计算DISTINCT计数
SELECT cat, COUNT(DISTINCT paramA + paramB) AS [count]
FROM Table1
GROUP BY cat
答案 2 :(得分:0)
您可能确实需要指定您正在使用的DBMS,因为其中一些,例如, PostgreSQL,允许你做一些简单的事情:
SELECT cat, COUNT(DISTINCT (paramA, paramB))
FROM atable
GROUP BY cat
;