количество клиентов, которые сгенерировали более 2 счетов - mysql - PullRequest
0 голосов
/ 13 марта 2019

Я хочу посчитать количество клиентов, сгенерировавших более 2 счетов

mysql> select * from invoices;
+-------+--------+---------------------+
| invId | cus_id | timeinfo            |
+-------+--------+---------------------+
|     1 |     36 | 2019-02-21 16:47:10 |
|     2 |     33 | 2019-02-21 16:49:22 |
|     3 |     34 | 2019-02-21 16:51:00 |
|     7 |     34 | 2019-02-21 19:02:46 |
|     5 |     36 | 2019-02-21 16:53:55 |
|     6 |     33 | 2019-02-21 19:02:02 |
|     8 |     33 | 2019-02-22 01:36:26 |
|     9 |     34 | 2019-02-22 16:01:20 |
|    10 |     33 | 2019-03-03 13:02:28 |
|    11 |     35 | 2019-03-05 19:11:53 |
|    12 |     32 | 2019-03-13 22:41:38 |
+-------+--------+---------------------+
11 rows in set (0.00 sec)

Ответы [ 2 ]

1 голос
/ 13 марта 2019

попробуйте как ниже

это вернет идентификатор клиента, у которого есть несколько счетов

 select cus_id 
 from invoices
 group by cus_id 
 having count(*)>2

если вам нужен только номер, используйте ниже, чтобы вернуть только номер клиента

select count(*) as numberofcustomer
 from (   select cus_id 
     from invoices
     group by cus_id 
    having count(*)>2 
     ) a
0 голосов
/ 13 марта 2019

Вам необходимо сгруппировать свои значения cus_id и использовать условие having, как показано ниже:

select cus_id, count(invId) as InvoiceCount
from invoices
group by cus_id
having count(invId) > 2

РЕДАКТИРОВАТЬ: если вам нужно общее количество клиентов, вы должны использовать вышеуказанный запрос в качестве подзапроса:

select count(t.cus_id) as CustomerCount 
from (
   select cus_id, count(invId) as InvoiceCount
   from invoices
   group by cus_id
   having count(invId) > 2 
) t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...