2011-09-06 83 views
2

我有以下查询:MySQL的合并多个计数查询

SELECT COUNT(package) as advanced_count FROM users WHERE package = '2' AND site_url is  NOT NULL; 

我想要做的是有2个查询,以获得basic_count然后TOTAL_COUNT这是基本+高级。

我等基本的查询是:

SELECT count(package) as basic_count FROM users WHERE package = '1' AND site_url is NOT NULL 

但我不知道如何将二者结合起来,以便它只是一个查询,然后加在里面添加总数为好。

我希望有人能指出我正确的方向。

谢谢!

回答

4
SELECT SUM(CASE WHEN package = '2' THEN 1 ELSE 0 END) AS advanced_count, 
     SUM(CASE WHEN package = '1' THEN 1 ELSE 0 END) AS basic_count, 
     COUNT(*) AS total_count 
    FROM users 
    WHERE site_url IS NOT NULL 
     AND package IN ('1', '2'); 
+0

太棒了!谢谢! – Drew