Подсчитать клиента, у которого> 10 транзакций с нами, исключая возврат - PullRequest
0 голосов
/ 21 октября 2019

Мне дали задание найти количество клиентов, у которых> 10 транзакций. Я пытался, и код показан ниже:

select 
count(*) as Customer_More_10_Transaction
from dbo.Transactions
group by cust_id
having count (*) > 10

Выходные данные просто показывают транзакцию клиента, а не считать клиента с> 10 транзакцией. Я ожидал, что вывод покажет 36.

Вывод показывается:

12
11
11
11
12
11
11
12
11
11
12
11
11
11
12
11
12
13
11
11
11
12
11
11
11
12
11
11
11
11
11
11
12
13
11
11

Требуется фактический вывод:

36

Ответы [ 4 ]

3 голосов
/ 21 октября 2019

Вам также нужно посчитать свой результат.

SELECT count(*) as Count_Of_Customer_More_10_Transaction FROM
(
  select 
  count(*) as Customer_More_10_Transaction
  from    dbo.Transactions
  group by cust_id
  having count (*) > 10
) AS T
2 голосов
/ 21 октября 2019

Мы можем обработать ваше требование без подзапроса:

SELECT TOP 1 COUNT(*) OVER () AS total_cnt
FROM dbo.Transactions
GROUP BY cust_id
HAVING COUNT (*) > 10;
1 голос
/ 21 октября 2019
SELECT COUNT(*)
FROM
(
    SELECT cust_id 
    FROM  dbo.Transactions
    group by cust_id
    having count (*) > 10
) AS T

Получить список custid с транзакцией более 10 и сосчитать его.

0 голосов
/ 21 октября 2019
SELECT UserId, COUNT(*)
FROM transactionlogs
WHERE UserId is not null 
GROUP BY UserId HAVING COUNT (*) > 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...