这是我的查询。我想从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()。
答案 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创建了一个别名。然后得到结果的总和。