2016-12-20 1 views
-6

Целью является поиск 2 самых популярных городов, куда отправляются путешественники. Конечный результат состоит в том, чтобы увидеть, какие 2 города имеют наибольший счет.Найти топ 2 посетителя города

Это шанхай + пекин или ченгд + Шеньян и т.д.

я застрял после того, как спускался к ниже данным.

3 колонны ниже. ID = customerid, city = города, которые путешествовали, число строк = общее количество городов каждым путешественником.

ID  | City | row_num 
------ | ------ | ------ 
177 | DALIAN | 1 
177 | SHANGHAI| 2 
177 | SHENYANG| 3 
291 | BEIJING | 1 
291 | DALIAN | 2 
5045 | CHENGDU | 1 
5045 | CHONGQIN| 2 
5045 | GUANGZHO| 3 
5195 | XI'AN | 1 
5195 | XIAN | 2 

выберите идентификатор города, номер_строки из [table1] группы по ID, Город, row_num

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

Cities   | Occurrence 
------   | ------ 
shanghai+beijing | 550 
------   | ------ 
beijing+chengdu | 320 
------   | ------ 
chengdu+shengyang| 110 

Использование SQL Server кстати.

+3

Я голосую, чтобы закрыть этот вопрос не по теме, потому что подмигнули запрос кода – SomeJavaGuy

+1

Какие СУБД вы используете? Также: [изменить] ваш вопрос и добавить запрос, который у вас уже есть. –

+0

спасибо! Я обновил простой запрос. используя btw сервера SQL. –

ответ

0

Попробуйте это:

SELECT TOP 2 X.City 
FROM (
     SELECT City,COUNT(City) as CN 
     FROM [YourTable] 
     GROUP BY City 
         ) X 
ORDER BY X.CN DESC 
+0

спасибо jibin! не знаю, как использовать предлагаемые вами для достижения результата. –

+0

, например, у клиента id 177 есть 3 города, поэтому я хочу отобразить в 3 "наборах городских пар" dalian + shanghai = 1 dalian_shengyang = 1 shanghai + shengyang = 1 –