MYSQL-将Group By与Order By与Joins一起使用

时间:2019-05-09 06:34:32

标签: mysql group-by sql-order-by

目前,我正在通过以下查询获取基于以下组的计数,但是当我们使用左联接时,在按组进行排序时存在问题。

我在下面尝试过,但是它没有根据状态进行排序

SQL小提琴http://sqlfiddle.com/#!9/3a4594/1/0

SELECT * FROM (SELECT t.Status, COUNT(*) AS 'Count' FROM Processess P LEFT JOIN Tasks T ON P.TaskId = T.TaskId GROUP BY t.Status) x ORDER BY x.Status ASC;

它给我的结果是

Status  | Count
----------
OPEN | 10
----------
DONE | 20
----------

但是我想要作为

Status  | Count
----------
DONE| 20
----------
OPEN| 10
----------

2 个答案:

答案 0 :(得分:0)

尝试以下-


var addNode = function() {

    /* Using a simple list I am able to retrieve the Ip

     var listitem = document.createElement('li');
     listitem.className = 'dynamic-link';
     listitem.innerHTML = ipNodes.slice(-1).pop();
     listitem.onclick = dynamicEvent;
     list.appendChild(listitem);*/

    const nodes = document.querySelector('#nodes');
    var source = document.getElementById("entry-template").innerHTML;
    var template = handlebars.compile(source);

    var context = { nodo: ipNodes.slice(-1).pop(), counter: counterList };
    nodes.innerHTML += template(context);

    counterList++;

}

答案 1 :(得分:0)

我终于找到了原因,因为订购类型为ENUM的Order By无法正常工作

因此,终于在Query下面为我工作了

SELECT * FROM (SELECT t.Status, COUNT(*) AS 'Count' FROM Processess P LEFT JOIN Tasks T ON P.TaskId = T.TaskId GROUP BY t.Status) x ORDER BY CAST(x.Status AS CHAR) ASC;