通过将GROUP BY与HAVING子句和COUNT函数结合使用,可以在ORDERS DB2表中找到重复的INVOICE_ID。GROUP BY将使我们能够将结果发票进行分组,而COUNT函数将使我们能够计算每组中出现的次数。我们可以在HAVING子句中使用谓词来过滤计数大于1的组的结果。
下面是我们可以用来在ORDERS DB2表中查找重复发票的SQL查询。
SELECT INVOICE_ID FROM ORDERS GROUP BY INVOICE_ID HAVING COUNT(INVOICE_ID) > 1
例如,如果我们有如下所示的ORDERS DB2表。
ORDER_ID | INVOICE_ID |
IRN22345 | Z451189 |
IRN89767 | Z451189 |
IRN67331 | Z955189 |
IRN56902 | Z225184 |
IRN99781 | Z896671 |
IRN09863 | Z225184 |
查询“从ORDERS GROUP按INVOICE_ID选择SELECT INVOICE_ID
COUNT(INVOICE_ID)> 1”将返回以下结果。
INVOICE_ID |
Z451189 |
Z225184 |