有没有办法将这两个SQL查询压缩为一个查询?
我试图得到每个用户的平均产品数量。为此,我有两个问题: 获取产品数量的一个:有没有办法将这两个SQL查询压缩为一个查询?,sql,Sql,我试图得到每个用户的平均产品数量。为此,我有两个问题: 获取产品数量的一个: SELECT COUNT(*) FROM `products` SELECT COUNT(DISTINCT `users`.`id`) FROM `users` INNER JOIN `products` ON `users`.`id` = `products`.`creator_id` 另一个是获取产品用户数量的: SELECT COUNT(*) FROM `products` SELECT COUNT(DIS
SELECT COUNT(*) FROM `products`
SELECT COUNT(DISTINCT `users`.`id`) FROM `users` INNER JOIN `products` ON `users`.`id` = `products`.`creator_id`
另一个是获取产品用户数量的:
SELECT COUNT(*) FROM `products`
SELECT COUNT(DISTINCT `users`.`id`) FROM `users` INNER JOIN `products` ON `users`.`id` = `products`.`creator_id`
然后我把产品的数量除以用户的数量,得到一个平均值。我更愿意在一个查询中执行此操作,包括除法。您只需将计数添加进去,可能有更好的方法,但这是可行的
SELECT
(SELECT COUNT(*) FROM `products`) as OVERALL_COUNT,
COUNT(DISTINCT `users`.`id`) FROM `users`
INNER JOIN `products`
ON `users`.`id` = `products`.`creator_id`
你在找这个吗
SELECT AVG( `products`.`id`)
FROM `users`
INNER JOIN `products`
ON `users`.`id` = `products`.`creator_id`
GROUP BY `users`.`id`
您可以定期进行
计数
以获取信息
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
.很抱歉没有说得更具体,但我的意思是我也想在查询中除法,这是我不知道怎么做的部分。@Snubber也用它更新了答案。很抱歉没有说得更具体,但我的意思是我也想在查询中除法,这是我不知道怎么做的部分。