“order 子句”中存在未知列 [col_name]

问题描述 投票:0回答:1

选择 CONCAT ( 姓名, '(' , LEFT(职业,1) , ')' ) 来自职业 联盟

选择 CONCAT('总共有 ', Count(职业) ,' ', 职业, 's' ) as line 来自职业 按职业分组

按线路订购

为什么我不能在 Order by 中使用 'line',即使它位于 Select 语句中并且之前已经执行过。我可以在没有 UNION 的情况下正确使用它,但是一旦我使用 UNION 语句,它就不起作用了,我也尝试了按计数排序(占用)它不起作用

sql mysql sql-order-by
1个回答
0
投票

尝试在 UNION 的外部查询中使用 ORDER BY 和 GROUP BY 子句。例如

SELECT * FROM (
    SELECT
        CONCAT ( Name,  '(' , LEFT(occupation, 1) , ')' ) AS line
    FROM occupations
    UNION
    SELECT
        CONCAT ('There are a total of ', Count(Occupation) , ' ', occupation,'s' ) AS line
    FROM
        occupations
)T
GROUP BY T.occupation
ORDER BY T.line
© www.soinside.com 2019 - 2024. All rights reserved.