* Количество столбцов SQL, которое включает __, повторений нет? - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь подсчитать количество «счетов-фактур», в которые входит позиция менее 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, я заметил, что один и тот же счет был несколько раз (так как он содержал более одного позиция с условием). Как я могу это исправить? Я знаю, что могу использовать разные, но я не знаю, где это разместить. Спасибо!

1 Ответ

2 голосов
/ 28 февраля 2020

Я думаю, что вы хотите:

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

Примечания:

  • Никогда не используйте запятые в предложении FROM.
  • Всегда используйте правильный, явный, стандартный , читаемый синтаксис JOIN.
  • Используйте значимые псевдонимы таблиц.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...