sql - 在 IBM netezza SQL 表中查找多列的不同组合时出错

标签 sql sql-server database

我需要在 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/

相关文章:

mysql - 仅当语句为 true 时才插入

sql - 如何找到最小的缺失序列号

sql-server - 如何在 SQL Server 2008 中将 datetimeoffset 转换为 datetime?

php - 从 MySQL 数据库选择性导出

sql - 将数据类型 varchar 转换为 float isnumeric = 1 时出错

python - 从闭包表 SELECT 语句渲染树?

c# - 向我解释这个 SELECT dbo.TableName(@variable) 语句

asp.net - 将 .MDF SQL Server 数据库与 ASP.NET 结合使用与使用 SQL Server

sql - 使用从第二行到最后一行的数据更新最后一行

C++ VCL 询问 .xlsb Excel 数据库