2014-12-14 2 views
2

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

SELECT country, language, population, count(*) 
FROM demographics 
GROUP BY language ASC 
having count(*) > 1; 

Я хочу, чтобы отобразить только те страны, которые разделяют общий язык, так что, если я был Соединенные Штаты и Англии как имеющий английским, и Португалия, и Бразилия, имеющими Portuguese, я хочу только эти четыре строки, которые будут отображаться ,

Любая помощь была бы принята с благодарностью.

ответ

3

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

SELECT d.* 

FROM demographics as d 

JOIN 
(
SELECT language 
FROM demographics 
GROUP BY language ASC 
having count(*) > 1 
) as dups ON d.language = dups.language 

ORDER BY language, country; 
+0

спасибо, что сделал. – KingDave212