我需要在 SQL IBM netteza Aiginity Workbench 中计算多个列的不同组合数。
id1 id2 id3 id4 id5 id6
NY 63689 eiof 394 9761 9318
NY 63689 secf 064 9742 78142
CT 39631 pfef 92169 9418 9167
CT 39631 bfbde 23457 10052 618146
结果应该是
id1 id2 value
NY 63689 2
CT 39631 2
我需要找出每个不同的 id2 和 id2 的 id3、id4、id5 和 id6 有多少种不同的组合。
我的sql查询:
SELECT id1, id2,
(
SELECT count(*) as dis_id_by_id1_id2
from
(
select distinct id3 , id4 ,id5 ,id6
FROM my_table
group by id1, id2
) t
)
from my_table
group by id1, id2
我得到错误:
id3 must be GROUPed or used in an aggregate function
如果我将 id3、id4、id5、id6 分组。结果是错误的。
count(distinct id3, id4) 在 IBM netezza 中是不允许的。
如有任何帮助,我们将不胜感激。
最佳答案
如果您首先编写一个查询来生成唯一组合,那么您可以将其用作嵌套子查询。
然后就是一个简单的 GROUP BY 和 COUNT()。
SELECT
id1,
id2,
COUNT(*) AS value
FROM
(
SELECT
id1, id2, id3, id4, id5, id6
FROM
myTable
GROUP BY
id1, id2, id3, id4, id5, id6
)
AS uniques
GROUP BY
id1,
id2
关于sql - 在 IBM netezza SQL 表中查找多列的不同组合时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27006382/