Возвращаемое значение ID - PullRequest
0 голосов
/ 20 марта 2019

У меня есть простая таблица, как показано ниже, и я хотел бы написать запрос, который возвращает единственный client_id, который имеет большинство транзакций.Один клиент имеет больше транзакций, чем любой другой клиент в таблице.

transaction_id int 
client_id int 
comments varchar 

Ура.

Ответы [ 3 ]

0 голосов
/ 20 марта 2019

Это сделает за вас:

SELECT client_id FROM table_name GROUP BY client_id ORDER BY COUNT(*) DESC limit 1;
0 голосов
/ 20 марта 2019
select client_id, count(transaction_id)
from table
group by client_id
order by 2 desc
limit 1;

Group by помогает собирать записи на основе определенного столбца, а count возвращает количество записей, соответствующих значению этого столбца. Order by desc располагается в порядке убывания, а limit 1 ограничивается 1 записью.

0 голосов
/ 20 марта 2019

Вот один из способов получения данных путем подсчета строк, группировки по client_id и последующей фильтрации по первым 1, упорядоченным по убыванию количества.

declare @table table (
    transaction_id int,
    client_id int,
    comments varchar(20)
);

insert into @table (transaction_id, client_id, comments)
values
(1, 1, ''),
(2, 2, ''),
(3, 2, ''),
(4, 3, '')

    select top 1 client_id, count(*) as vol
    from @table
    group by client_id
    order by vol desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...