嗨,我正在统计所有订购超过2台的用户。到目前为止我所做的是
SELECT Count(*), (SELECT Count(*) AS cnt FROM order ord WHERE usr.id = ord.user_id HAVING cnt > 1) FROM USER usr;
但我还是有很多用户
3qpi33ja1#
试试这个:
SELECT Count(*) FROM USER usr WHERE EXISTS(SELECT 1 FROM order WHERE user_id = usr.id GROUP BY user_id HAVING COUNT(*) >= 2)
niwlg2el2#
你可以这样写:
Select count(*) from ( Select UserId, Count(UserId) from Order group by UserId having Count(UserId)>2 ) Temp
lymgl2op3#
将查询分为两部分:所有下了2个以上订单的用户:
SELECT user_id, COUNT(*) AS count FROM orders GROUP BY user_id HAVING COUNT(*) > 2;
从以上结果中统计所有用户:
SELECT COUNT(*) AS total FROM ( SELECT user_id FROM orders GROUP BY user_id HAVING COUNT(*) > 2 ) required_users;
0wi1tuuw4#
尝试此操作以获取用户明智的订单计数
SELECT usr.id, Count(ord.id) FROM USER usr INNER JOIN order ord ON usr.id = ord.user_id GROUP BY usr.id Having Count(ord.id)>2
如果你想计算下超过2个订单的用户数量
SELECT count(distinct usr.id) FROM USER usr INNER JOIN order ord ON usr.id = ord.user_id GROUP BY usr.id Having Count(ord.id)>2
kqlmhetl5#
我只是试图修复你的查询,因为我发现你在投影上犯了错误,这就是为什么我使用子查询
SELECT * from ( SELECT usr.id, Count(*) AS cnt FROM order ord inner join USER usr on usr.id = ord.user_id group by usr.id HAVING cnt >2 ) as T
5条答案
按热度按时间3qpi33ja1#
试试这个:
niwlg2el2#
你可以这样写:
lymgl2op3#
将查询分为两部分:
所有下了2个以上订单的用户:
从以上结果中统计所有用户:
0wi1tuuw4#
尝试此操作以获取用户明智的订单计数
如果你想计算下超过2个订单的用户数量
kqlmhetl5#
我只是试图修复你的查询,因为我发现你在投影上犯了错误,这就是为什么我使用子查询