SQL Запрос - возвращает наибольшее количество версий для версии ОС - PullRequest
0 голосов
/ 14 апреля 2020

Newb ie SQL здесь, и я хочу иметь номер UBR0 с наибольшим счетом по CurrentBuild0

select CurrentBuild0, UBR0, Count(CurrentBuild0) as [Count] 
from v_GS_OperatingSystemVersionDetails0
where not UBR0 is null
group by CurrentBuild0, UBR0
order by [Count] DESC

Это возвращение:

CurrentBuild0   UBR0    Count
16299           1747    2728
18362            719    1615
18363            719    232
16299           1686    170
18363            592    44
18363            418    23
18362            720    12
18363            720    4
16299           1775    1

Конечный результат, я хотите это:

CurrentBuild0   UBR0
16299           1747
18362            719
18363            719

UBR0 будет меняться каждый месяц. Как этого добиться, используя SQL mgmt studio?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 14 апреля 2020

Вы можете использовать row_number():

select t.*
from (select CurrentBuild0, UBR0, 
             Count(CurrentBuild0) as [Count],
             row_number() over (partition by CurrentBuild0 order by Count(CurrentBuild0) desc) as seq
      from v_GS_OperatingSystemVersionDetails0
      where not UBR0 is null
      group by CurrentBuild0, UBR0
     ) t
where seq = 1;

Если count имеет связи, вы можете использовать rank() вместо.

0 голосов
/ 14 апреля 2020

Ух ты .. Вы оба опубликовали одно и то же решение. Это удивительно!

Я был близок. Я сделал дополнительный выбор, но я не знал, как получить первый (row_number (), Partition и Seq = 1)

TYVM для решения!

select t.*
from (select CurrentBuild0, UBR0, 
             Count(CurrentBuild0) as [Count],
             row_number() over (partition by CurrentBuild0 order by Count(CurrentBuild0) desc) as seq
      from v_GS_OperatingSystemVersionDetails0
      where not UBR0 is null
      group by CurrentBuild0, UBR0
     ) t
where seq = 1;
0 голосов
/ 14 апреля 2020

Вы можете использовать row_number():

select cu.*
from (select CurrentBuild0, UBR0, Count(*) as [Count],
             row_number() over (partition by CurrentBuild0 order by count(*) desc) as seqnum
      from v_GS_OperatingSystemVersionDetails0
      where UBR0 is not null
      group by CurrentBuild0, UBR0
     ) cu
where seqnum = 1
order by [Count] DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...