SQL ORDER BY с номером столбца или статистической функцией - PullRequest
3 голосов
/ 16 января 2012

У меня есть 2 разных результата, когда я пытаюсь ORDER BY с номером столбца и с агрегатной функцией. В чем разница между этими двумя методами? (Я думал, что они будут иметь одинаковый результат)

Список фильмов 1978 года в порядке их размера. Ниже приведены 3 таблицы:

movie(id, title, yr, director)  
actor(id, name)  
casting(movieid, actorid, ord)  

Ответ 1 с использованием ORDER BY с номером столбца:

SELECT title
       ,COUNT(a.id)  
FROM   movie m
       ,casting c
       ,actor a  
WHERE  m.id=movieid 
AND    a.id=actorid 
AND    yr=1978  
GROUP BY title  
ORDER BY 2 DESC  

Использование COUNT(a.id). Все то же самое, кроме последней строки

...  
ORDER BY COUNT(a.id) DESC  

Ответы [ 2 ]

0 голосов
/ 16 сентября 2014

Я думаю, что у Шута есть это. Вот пример для вас:

select title, actor_count from (
    SELECT title
       ,COUNT(a.id) actor_count 
    FROM   movie m
       ,casting c
       ,actor a  
    WHERE  m.id=movieid 
    AND    a.id=actorid 
    AND    yr=1978  
    GROUP BY title) subquery
order by actor_count
0 голосов
/ 18 января 2012

Я бы предложил вам сделать подзапрос и заказать его для чистого результата

...