Я хочу заказать по таблице ниже двух качеств - PullRequest
0 голосов
/ 06 апреля 2020

This is the result i am getting by my query Выше приведен результат, который я получаю по моему запросу

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

This is what result should look like

На изображении выше показано, как должен выглядеть результат

Используемый сервер: Mysql

это мой запрос, и то, что я пробовал до сих пор, любая помощь очень ценится

select 
    snippettitle as category
    , if(cntrank>limitnumber,null,cntrank) as counts
    ,if(viewrank>limitnumber,null,viewrank) as views
    , if(likesrank>limitnumber,null,likesrank) likes
    , if(dislikesrank>limitnumber,null,dislikesrank) dislikes
    ,if(commentrank>limitnumber,null,commentrank) comment_count 
from ( select 
            snippettitle 
            ,RANK() OVER (ORDER BY cnt DESC) AS cntrank 
            ,RANK() OVER (ORDER BY views DESC) AS viewrank 
            ,RANK() OVER (ORDER BY likes DESC) AS likesrank 
            ,RANK() OVER (ORDER BY dislikes DESC) AS dislikesrank 
            ,RANK() OVER (ORDER BY comment_count DESC) AS commentrank 
        from homework7a) tmp 
        where 
            (cntrank <= limitnumber 
            || viewrank <= limitnumber 
            || likesrank <= limitnumber 
            || dislikesrank <= limitnumber 
            || commentrank <= limitnumber
    ) 
order by counts desc,views desc,likes desc ,dislikes desc,comment_count desc;

1 Ответ

0 голосов
/ 06 апреля 2020

Ваше 1-е условие:

по количеству ненулевых рейтингов в порядке убывания

может быть упрощено до:

по количеству нулевых рейтингов в порядке возрастания

Поэтому я считаю, что вы хотите это:

select *
from yourquery
order by 
  (counts is null) + (views is null) + (likes is null) + (dislikes is null) + (comment_count is null), 
  coalesce(counts, 0) + coalesce(views, 0) + coalesce(likes, 0) + coalesce(dislikes, 0) + coalesce(comment_count, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...