SQL计数列包含__,是否不重复



我正在尝试使用两个表来计算包括小于20的行项目的"发票"的数量,但不重复发票计数(对不起,很难解释(

这就是我所拥有的:

SELECT COUNT(a.invoice_id) 
FROM invoices a, invoice_line_items b 
WHERE b.line_item_amount < 20;

结果:

+---------------------+
| COUNT(a.invoice_id) |
+---------------------+
|                1710 |          |
+---------------------+

但当我只做SELECT时,我注意到有多次相同的发票(因为它包含多个符合条件的行项目(。我该如何解决这个问题?我知道我可以使用distinct,但我不知道该放在哪里。谢谢!

我想你想要:

SELECT COUNT(DISTINCT ilt.invoice_id)
FROM invoice_line_items ilt
WHERE ilt.line_item_amount < 20;

注:

  • NeverFROM子句中使用逗号
  • 始终使用正确、明确的标准可读的JOIN语法
  • 使用有意义的表别名

最新更新