2015-07-03 5 views
2

Я хочу напечатать следующий результатзаказа, используя округлую колонку

Oceania  109189 
South America 147435 
Europe   175138 
Africa   274439 
Asia   693038 

Мой запрос

select co.Continent bb, round(avg(ci.Population)) as aa 
from Country co 
    FULL OUTER JOIN City ci ON co.Code = ci.CountryCode 
group by co.Continent 
having (count(ci.ID)<>0 and co.Continent is not null) 
order by aa asc; 

и его отображения следующий результат

Africa   274439 
Asia   693038 
Europe   175138 
Oceania  109190 
South America 147435 

Как заказать результат используя округленное значение ????

+0

Какая версия Oracle вы используете? – cxw

+1

Очень странно. Переместите выделение в качестве производной таблицы, а затем попробуйте ORDER BY. – jarlh

+0

не получил ур точку ..... –

ответ

0

Попробуйте следующее,

select bb, round(aa) as aa from (
    select co.Continent bb, avg(ci.Population) as aa 
    from Country co 
    FULL OUTER JOIN City ci ON co.Code = ci.CountryCode 
    group by co.Continent 
    having (count(ci.ID)<>0 and co.Continent is not null) 
)T 
order by round(aa); 
0

Я не вижу причин, почему ORDER BY не должен работать. Ваш запрос верен. Очевидно, вы получаете записи, заказанные co.Continent.

Это должно быть ваше приложение, выполняющее этот вид после получения результатов из СУБД. Может быть, автосортировочный список или тому подобное?

+0

Если это не комментарий? Конечно, есть что-то еще, упорядочивая результат, но мне нужно спросить. –

+0

@Blakes Seven: Нет, это ответ. Не сомневайтесь в запросе, проверьте приложение :-) –

+0

Не знаю, что сказать, кроме «если обувь подходит». Поэтому я полагаю, что если во всей информации не хватает вопроса, то справедливое предположение состоит в том, что ответ заключается в том, что что-то выходит за пределы сказанного. Наверное, опыт обучения. –

0

Разве это не работает? :

select co.continent bb, round (avg (ci.population)) as aa 
    from country co full outer join city ci on co.code = ci.countrycode 
group by co.continent 
    having (count (ci.id) <> 0 and co.continent is not null) 
order by round (avg (ci.population)) asc;