Использование запроса top x count в качестве предложения where для отображения всех соответствующих записей - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть счет 2

В моей таблице есть эти данные

Name Age price visited     size
Jon  34  53    2018-01-01  9  
Don  22  70    2018-03-01  15
Pete 76  12    2018-11-09  7
Jon  34  55    2018-09-13  9
Paul 90  64    2018-07-08  6
Pete 76  31    2018-03-25  7
Jon  75  34    2018-06-06  8


select top 2
name,
count(name) as cnt
from
tbl1
group by name
order by cnt desc

Который возвращает мои лучшие 2 имени

Jon  3
Pete 2

Это имя будет динамически меняться при выполнении запроса в зависимости от того, кто совершил наибольшее количество посещений (это очень упрощенно, поскольку в реальной таблице тысячи записей).

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

Name Age price visited     size
Jon  34  53    2018-01-01  9  
Jon  34  55    2018-09-13  9
Jon  75  34    2018-06-06  8
Pete 76  12    2018-11-09  7
Pete 76  31    2018-03-25  7

В итоге подсчитайте, кто посетил больше всего, а затем отобразите все записи под этими именами.

Заранее спасибо

1 Ответ

0 голосов
/ 07 ноября 2018

Вот один вариант использования in:

select *
from yourtable
where name in (
    select top 2 name
    from yourtable
    group by name
    order by count(*) desc
)
order by name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...