我正在尝试获得每个用户的平均产品数量。为此,我有两个问题:
获得产品数量的产品:
SELECT COUNT(*) FROM `products`
另一个获得产品用户数量的人:
SELECT COUNT(DISTINCT `users`.`id`) FROM `users` INNER JOIN `products` ON `users`.`id` = `products`.`creator_id`
然后我将产品数除以用户数以获得平均值。我更愿意在一个查询中执行此操作,包括分割。
答案 0 :(得分:1)
您可以定期COUNT
获取信息;
SELECT COUNT(*) product_count,
COUNT(DISTINCT products.creator_id) user_with_product_count
FROM products
产品数量是一个简单的行数,为了让用户获得产品,您只需计算不同的创建者。
如果您只想计算平均值,只需立即计算分数;
SELECT COUNT(*) / COUNT(DISTINCT products.creator_id) average
FROM products
答案 1 :(得分:0)
你可以添加计数,可能有更好的方法,但工作
SELECT
(SELECT COUNT(*) FROM `products`) as OVERALL_COUNT,
COUNT(DISTINCT `users`.`id`) FROM `users`
INNER JOIN `products`
ON `users`.`id` = `products`.`creator_id`
答案 2 :(得分:0)
你有找这个吗?
SELECT AVG( `products`.`id`)
FROM `users`
INNER JOIN `products`
ON `users`.`id` = `products`.`creator_id`
GROUP BY `users`.`id`