使用Group By子句显示2个select语句

时间:2012-11-26 06:36:45

标签: mysql

我想加入两个或多个具有group by子句的select语句,但它不起作用。

SELECT COUNT(`rank`) AS rank1,sitename
FROM `larrdb_ranking` 
INNER JOIN larrdb_site_list USING (sid)
WHERE rank=1
GROUP BY sitename
UNION 
SELECT COUNT(`rank`) AS rank2 ,sitename
FROM `larrdb_ranking` 
INNER JOIN larrdb_site_list USING (sid)
WHERE rank=2
GROUP BY sitename

我得到的只是第一个声明有效,但第二个声明没有...我没有选择rank2

更新

Union All也不起作用:

    SELECT COUNT(`rank`) AS rank1,sitename
FROM `larrydb_ranking` 
INNER JOIN larrydb_site_list USING (sid)
WHERE rank=1
GROUP BY sitename
UNION ALL
SELECT COUNT(`rank`) AS rank2 ,sitename
FROM `larrydb_ranking` 
INNER JOIN larrydb_site_list USING (sid)
WHERE rank=2
GROUP BY sitename

column..rank2未出现

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT SUM(IF(rank=1, 1, 0)) AS rank1, SUM(IF(rank=2, 1, 0)) AS rank2,sitename
FROM `larrydb_ranking` 
INNER JOIN larrydb_site_list USING (sid)
GROUP BY sitename