Member 10192073 Ответов: 2

Как найти, какой клиент имеет максимальное количество строк в SQL


Привет, я хочу найти, какой клиент имеет максимальное количество счетов-фактур в моей таблице счетов-фактур,

таким образом, CustomerRef - это идентификатор клиента, поэтому я хочу найти, какой клиент имеет максимальное количество счетов-фактур в SQL server 2008.

пожалуйста, помогите мне написать запрос для этого

Что я уже пробовал:

Я просто пытался
select distinct CustomerRef from Invoices where CustomerRef in
(select CustomerRef from Invoices group by CustomerRef having COUNT(*)>1)


этот запрос возвращает только записи, у которых клиенты имеют более одного счета-фактуры.

но мне нужна одна запись, в которой клиент имеет максимальное количество строк в моей таблице счетов-фактур.

2 Ответов

Рейтинг:
13

OriginalGriff

Попробуй:

SELECT TOP 1 CustomerRef, COUNT(*) AS InvoiceCount FROM Invoices
GROUP BY CustomerRef
ORDER BY InvoiceCount DESC


Maciej Los

5ед!

Member 10192073

спасибо, сэр, это прекрасно работает для меня

OriginalGriff

Пожалуйста!

Member 10192073

можем ли мы присоединиться к linkedin или skype, пожалуйста? мой скайп manojkandpal192

OriginalGriff

Нет, мы все общаемся через этот сайт: в противном случае другие люди с аналогичными проблемами имеют доступ к тем же решениям.

Member 10192073

хорошо спасибо за Вашу поддержку

OriginalGriff

Пожалуйста!

Member 10192073

Уважаемый сэр, я хотел присоединиться к своему Linkedin, но он дал мне ошибку 404 страница не найдена.
Я бы с удовольствием присоединился к моему скайпу manojkandpal192

Рейтинг:
1

Maciej Los

В качестве альтернативы решению OriginalGriff я бы предложил прочитать о функциях ранжирования, которые могут помочь вам найти максимальное значение количества счетов-фактур.
Функции ранжирования SQL Server 2005 и 2008 Row_Number и Rank[^]

SELECT A.CustomerRef, ROW_NUMBER() OVER(ORDER BY A.CountOfInvoices DESC) As Position
FROM (
    SELECT CustomerRef, COUNT(*) AS CountOfInvoices
    FROM Invoices 
) AS A
WHERE A.Position=1


Попробуй!