我正在尝试使用两个表来计算包括小于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;
注:
- Never在
FROM
子句中使用逗号 - 始终使用正确、明确的标准可读的
JOIN
语法 - 使用有意义的表别名