如何获取sum表单查询结果

时间:2015-08-10 12:07:25

标签: mysql

这是我的查询。我想从reqery结果中得到总和。

SELECT COUNT( user_id ) c
FROM mst_tabs
WHERE merchant_id =3
GROUP BY user_id
HAVING c >1 

这是我的查询结果。我正在尝试得到这个结果的总和。

    c 
--------    
    19
    3
    26
    93
    20
    2
    34
    5

我不知道如何在此结果中使用sum()。

2 个答案:

答案 0 :(得分:0)

使用子查询:

SELECT SUM(c)
FROM (SELECT COUNT( user_id ) as c
      FROM mst_tabs
      WHERE merchant_id =3
      GROUP BY user_id
      HAVING c > 1 
     ) c;

如果每行都有唯一的ID,那么您可以在没有子查询的情况下执行此操作:

SELECT COUNT(m.user_id ) as c
FROM mst_tabs m
WHERE merchant_id = 3 AND
      EXISTS (SELECT 1
              FROM mst_tabs m2
              WHERE m2.merchant_id = m.merchant_id AND
                    m2.user_id = m.user_id AND m.id <> m2.id);

mst_abs(merchant_id, user_id, id)上的索引可能会更快。

答案 1 :(得分:0)

SELECT sum( c )
FROM (

SELECT COUNT( user_id ) c
FROM mst_tabs
WHERE merchant_id =3
GROUP BY user_id
HAVING c >1
) AS t

这里我为table创建了一个别名。然后得到结果的总和。