Des c Order in SubQueries - PullRequest
       22

Des c Order in SubQueries

0 голосов
/ 18 февраля 2020

С этим входом, как я могу использовать ORDER BY, чтобы получить нисходящий порядок для подзапроса? Это не относится к данным в столбце.

enter image description here

Ответы [ 3 ]

0 голосов
/ 18 февраля 2020

Проблема вызвана тем, что вы ошибочно указали NumberOfSections в предложении ORDER BY.
Вы должны использовать как обычное имя столбца без кавычек.

Select name, 
    (select count(*)
    from teaches
    where instructor.ID = teaches.ID) 
    as 'NumberOfSections'
from instructor
where NumberOfSections >= 2 ORDER BY NumberOfSections DESC;
0 голосов
/ 18 февраля 2020

Вместо коррелированного подзапроса вы можете напрямую использовать Regular INNER JOIN среди этих таблиц, включая псевдонимы без кавычек:

SELECT i.name, COUNT(*) AS NumberOfSections
  FROM instructor i
  JOIN teaches t
    ON i.ID = t.ID
 GROUP BY i.name
HAVING COUNT(*) >= 2
 ORDER BY NumberOfSections DESC;

Если вы все еще хотите использовать кавычки, используйте двойные кавычки ("NumberOfSections" , в этом случае также возможно использовать пробелы, такие как "Number Of Sections"), а не одинарные для обоих мест (псевдоним COUNT и в списке ORDER BY)

0 голосов
/ 18 февраля 2020

Количество секций в заказе не должно быть упаковано:

Select name,
(select count(*)
from teaches
where instructor.ID = teachers.ID) as 'NumberOfSections'
from instructor
where NumberOfSections >= 2 ORDER BY NumberOfSections DESC;
...