【发布时间】:2014-09-06 03:43:36
【问题描述】:
我有一个 sql 语句,它试图检索所有相似行的计数大于 1 的行。在所有这些行中,一个字段似乎包含空值。
案例一:
假设表名是 ABC
BUSINESS_UNIT、发票、旗帜
A 1(空)
A 1(空)
SQL 语句:SELECT BUSINESS_UNIT, INVOICE, FLAG from TABLE ABC group by BUSINESS_UNIT, INVOICE, FLAG COUNT(*) > 1
我希望它不会返回任何行,因为这两个标志基本上都是空白的。但它返回
BUSINESS_UNIT、发票、旗帜
A 1(空)
案例 2:
表 ABC
BUSINESS_UNIT、发票、旗帜
A 1(空)
A 1(空)
B 1 1
B 1(空)
SQL 语句:SELECT BUSINESS_UNIT, INVOICE, FLAG from TABLE ABC group by BUSINESS_UNIT, INVOICE, FLAG COUNT(*) >1
我期待结果是
BUSINESS_UNIT、发票、旗帜
B 1 1
这是针对 Oracle 11g 的。有人可以帮忙,让我知道我们是否可以使用 Oracle 中提供的任何功能吗?
编辑原始sql语句后。
我实际上应该从 Group by 中删除标志并选择并添加到计数中,以便识别相似行的多个标志。
谢谢!
【问题讨论】:
标签: sql oracle11g group-by crosstab