2016-07-01 105 views
-2

我已经卡住了一些在mysql查询中的位置。我有两个查询,都返回结果罚款。在一个查询中比较两个mysql查询的计数

我的要求是我想在一个查询中使用两个查询,以便我可以比较两个查询的数量。

1查询

SELECT 
     user_profile.USERID, 
     user_profile.FIRSTNAME, 
     user_profile.LASTNAME, 
     lastvisit.lastvisit, 
     lastvisit.SOURCE as "RegistrationPlatform" 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(lastvisit.lastvisit) = 5 AND YEAR(lastvisit.lastvisit) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp') 

第二查询

SELECT 
     user_profile.USERID, 
     user_profile.FIRSTNAME, 
     user_profile.LASTNAME, 
     user_profile.registrationDate, 
     lastvisit.SOURCE as "RegistrationPlatform" 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(user_profile.registrationDate) = 5 AND YEAR(user_profile.registrationDate) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp') 

输出应该是这样的

Query UserCount 
Query1 100 
Query2 200 

任何建议吗?

感谢

+0

显示的查询和一些示例数据与预期的结果 – Jens

+0

请检查该http://stackoverflow.com/help/how-to-ask –

+0

的第一联盟(第一个区块)的列名是为最终输出而冰冻的 – Drew

回答

1

使用Count(*)Union

SELECT 
    'query1' as query 
    Count(*) as UserCount 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(lastvisit.lastvisit) = 5 AND YEAR(lastvisit.lastvisit) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp') 
UNION 
SELECT 
    'query2' as query 
    Count(*) 
    FROM user_profile 
    INNER JOIN lastvisit 
    ON user_profile.USERID =lastvisit.USERID 
    WHERE MONTH(user_profile.registrationDate) = 5 AND YEAR(user_profile.registrationDate) = 2016 
    AND lastvisit.SOURCE IN ('Online', 'MobileApp')