Порядок от наименьшего значения без использования MAX и ORDER BY - PullRequest
0 голосов
/ 05 мая 2019

Я хотел получить максимальное количество столбцов, для которых я использовал Count(), и хотел упорядочить столбец от максимального к минимальному значению без использования max или order by desc.

Я пытался

SELECT COUNT(subject) AS CNT, student
FROM AUTHOR
GROUP BY student AU1
WHERE not exists (SELECT * FROM AUTHOR AU2 
                  WHERE AU2.student <> AU1.student AND AU2.subject > AU1.CNT)

но он не возвращает желаемый результат.

Желаемый результат такой же, как

SELECT COUNT(subject) AS CNT, student
FROM AUTHOR
GROUP BY Student
ORDER BY CNT DESC

но без order by desc или MAX.

Ответы [ 2 ]

2 голосов
/ 05 мая 2019

Вы можете использовать ORDER BY ASC:

SELECT COUNT(subject) AS CNT, student
FROM AUTHOR
GROUP BY Student
ORDER BY (- CNT) ASC;

Если вы хотите получить результаты в определенном порядке, вам нужно использовать ORDER BY. Это одно из правил использования SQL.

0 голосов
/ 05 мая 2019

ОК, поэтому DESC не разрешен, а MAX не разрешен.

SELECT
    COUNT(subject) AS CNT, student
FROM
    AUTHOR
GROUP BY 
    Student
ORDER BY 
    -CNT

Это не работает в каждом программном обеспечении базы данных. Другая версия:

SELECT * FROM (
    SELECT
        COUNT(subject) AS CNT, student
    FROM
        AUTHOR
    GROUP BY 
        Student
    ) t
ORDER BY 
    -CNT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...