2015-06-11 51 views
1

我有这样的查询计算的别名

SELECT number_title, 
    (SELECT COUNT(*) 
    FROM poll_stemmen 
    ) AS total_number, 

    (SELECT COUNT(ps.number_id) 
      FROM poll_stemmen 
      group by ps.number_id 
      ) AS voted 
    FROM poll_numbers AS pn 
    RIGHT JOIN poll_stemmen AS ps ON ps.number_id = pn.id 
    GROUP BY ps.number_id 

,但我想这样做的投票和TOTAL_NUMBER领域

之间的计算所以我做了这个查询:

SELECT number_title, 
    (SELECT COUNT(*) 
    FROM poll_stemmen 
    ) AS total_number, 

    (SELECT COUNT(ps.number_id) 
      FROM poll_stemmen 
      group by ps.number_id 
      ) AS voted, (SELECT voted) AS another_number 

     FROM poll_numbers AS pn 
     RIGHT JOIN poll_stemmen AS ps ON ps.number_id = pn.id 
     GROUP BY ps.number_id 

但我得到这个错误:

参考'投票'不支持(参考组功能)

我该如何解决这个问题?

+0

使用派生表吗? – jarlh

+0

你不能在'select'子句中重新使用别名 –

+0

我怎么能比2个字段计算? – da1lbi3

回答

1

您可以将查询包装在子查询中。然后在外部查询中以您喜欢的任何方式使用别名,例如

SELECT number_title, total_number, voted, 
     total_number * voted AS myCalculatedColumn 
FROM (
SELECT number_title, 
     (SELECT COUNT(*) 
     FROM poll_stemmen) AS total_number,  
     (SELECT COUNT(ps.number_id) 
     FROM poll_stemmen 
     group by ps.number_id) AS voted 
FROM poll_numbers AS pn 
RIGHT JOIN poll_stemmen AS ps ON ps.number_id = pn.id 
GROUP BY ps.number_id) t