Mysql SQL-不正确使用Union和Order BY

Mysql SQL-不正确使用Union和Order BY,mysql,sql,Mysql,Sql,我得到了错误“不正确使用UNION和ORDER BY” 我使用这个查询作为工具,我需要它来工作 我知道有一个解决方案,可以在两个查询的开头和结尾使用Parathesis(),但我的工具不能使用它 这就是为什么我需要一个其他的查询解决方案,而不是使用()解决方案 还有其他解决办法吗 非常感谢您的帮助。。。从2天起就有这个问题了 干杯试试这个: SELECT Count(STATUS), STATUS, ROUND(Count(STATUS) * 100 / (SE

我得到了错误“不正确使用UNION和ORDER BY”

我使用这个查询作为工具,我需要它来工作

我知道有一个解决方案,可以在两个查询的开头和结尾使用Parathesis(),但我的工具不能使用它

这就是为什么我需要一个其他的查询解决方案,而不是使用()解决方案

还有其他解决办法吗

非常感谢您的帮助。。。从2天起就有这个问题了

干杯

试试这个:

SELECT Count(STATUS),
   STATUS,
   ROUND(Count(STATUS) * 100 /
           (SELECT Count(*)
            FROM call_view
            WHERE (create_month = Month(Now() - INTERVAL 1 MONTH))
              AND (create_year = Year(Now() - INTERVAL 1 MONTH))
              AND customer_company_name = "Company" ), 1) AS Percentage
FROM call_view
WHERE (create_month = Month(Now() - INTERVAL 1 MONTH))
AND (create_year = Year(Now() - INTERVAL 1 MONTH))
AND customer_company_name = "Company"
GROUP BY STATUS
ORDER BY COUNT(CALL_ID) DESC LIMIT 6
UNION
SELECT Sum(category_count),
   'Other',
   sum(percentage)
FROM
( SELECT Count(CATEGORY) AS category_count,
       COUNT(CALL_ID),
       CATEGORY,
       ROUND(Count(CATEGORY) * 100 /
               (SELECT Count(*)
                FROM call_view
                WHERE (create_month = Month(Now() - INTERVAL 1 MONTH))
                  AND (create_year = Year(Now() - INTERVAL 1 MONTH))
                  AND customer_company_name = "Company" ), 1) 
AS Percentage FROM call_view
WHERE (create_month = Month(Now() - INTERVAL 1 MONTH))
  AND (create_year = Year(Now() - INTERVAL 1 MONTH))
  AND customer_company_name = "Company"
GROUP BY CATEGORY
ORDER BY COUNT(CALL_ID) DESC LIMIT 6,
                                  1525125215) AS original_query

您是否试图根据完整的联合结果进行订购?(或者只是其中一个选择?)第一个查询检索调用最多的类别(位置1-6)。我希望它们按DESC排序。第二个查询检索别名“other”下的所有类别。所以我想按第一个查询排序,然后在结果末尾添加第二个查询非常感谢您的回复。我已经尝试过这个解决方案,它正在工作,但是parathesis()在两个查询的开始和结束时都会给另一个工具带来问题。这就是为什么我需要一个不带()的解决方案。括号在这里是必要的。是否有可能组合两个查询(如子查询)而不使用Union运算符?
(
    SELECT Count(STATUS),  
    STATUS, 
    ROUND(Count(STATUS) * 100 / (SELECT Count(*) 
                                  FROM   call_view 
                                  WHERE 
    ( create_month = Month(Now() - 
                    INTERVAL 1 month) ) 
     AND ( create_year = Year( 
         Now() - INTERVAL 1 month) ) 
     AND customer_company_name = "Company"
       ), 1) AS Percentage
    FROM   call_view 
    WHERE  ( create_month = Month(Now() - INTERVAL 1 month) ) 
    AND ( create_year = Year(Now() - INTERVAL 1 month) ) 
    AND customer_company_name = "Company"
    GROUP BY STATUS
    ORDER BY COUNT(CALL_ID) DESC
    limit 6
)
union
(
    Select Sum(category_count), 'Other', sum(percentage) 
    from (
    SELECT Count(CATEGORY) as category_count,  COUNT(CALL_ID), CATEGORY,

    ROUND(Count(CATEGORY) * 100 / (SELECT Count(*) 
                              FROM   call_view 
                              WHERE 
      ( create_month = Month(Now() - 
                INTERVAL 1 month) ) 
    AND ( create_year = Year( 
      Now() - INTERVAL 1 month) ) 
    AND customer_company_name ="Company"
    ), 1) AS Percentage
    FROM   call_view 
    WHERE  ( create_month = Month(Now() - INTERVAL 1 month) ) 
    AND ( create_year = Year(Now() - INTERVAL 1 month) ) 
       AND customer_company_name = "Company"
       GROUP BY CATEGORY
      ORDER BY COUNT(CALL_ID) DESC
    limit 6, 1525125215) as original_query
)