【发布时间】:2021-03-24 21:56:38
【问题描述】:
显然我不明白子查询的相关性 在引擎盖下工作。
我有以下“销售”表架构: sale_id|sale_date|product_type
我的目标是计算某种类型的已售产品占产品总数的比例 当天售出。
例如:
1. 2015-01-03 product_1
2. 2015-01-03 product_1
3. 2015-01-03 product_3
4. 2015-01-04 product_4
5. 2015-01-05 product_1
product_1 我的输出应该是:
2015-01-03 0.667
2015-01-04 0
2015-01-05 1
这是我对代码的想法(我们从外部查询 s1 和 在内部查询中使用它执行选择查询)。显然这不起作用:
select distinct s1.sale_date, count(select * from sales s2
where s2.sale_date = s1.sale_date
and s2.product_type = 'product1')/
count(select * from sales s3
where s3.sale_date = s1.sale_date)
from sales s1
请帮我解决这个问题!
【问题讨论】:
-
大概,'1'-'5'是主键ID?
-
对每个单独的行执行关联子查询,并将关联子查询文本中外部表的行列替换为该行的值。因此,对于
sale_date='2015-01-03'所在的行,相关子查询将作为select * from sales s2 where s2.sale_date = '2015-01-03' and s2.product_type = 'product1'执行。
标签: mysql sql count subquery aggregate-functions