【问题标题】:Multiple Counts that are grouped, from multiple tables, with a join thrown in从多个表中分组的多个计数,并加入了连接
【发布时间】:2016-05-19 23:36:28
【问题描述】:

我有两个保存图像路径的表。已批准图像的数量应等于已发布图像的数量,但我有证据表明它们不是。一个表必须具有与另一个表相同的条件才能进行分组的连接。我只想返回两个计数不匹配的行。我已经包含了两个单独返回数据的查询。即使我尝试使用 Excel 作为拐杖,此查询将返回的行数也是数百万。

查询 1

select product_id, count(*)
from published p
join published_set ps on ps.id = p.media_set_id
group by ps.product_id

查询 2

select product_id, count(*)
from media
where status in 'APPROVED'
group by pro_sku

我确实使用 Excel 提取了我认为最差的一类产品,并且在 12,000 种产品中出现了 8,000 种不匹配。我想将此与网站的其他区域进行比较,我相信这些区域几乎没有不匹配。我的怀疑是系统在特定类别中错误地将数据插入到表中。

【问题讨论】:

  • 问题是?
  • 我想使用查询来分析我们的整个产品目录。如何将这两个单独的查询合并为一个查询?如果我一次按类别查询这些,我会运行超过 100,000 个查询。

标签: sql oracle join group-by


【解决方案1】:

您的问题确实有待澄清。例如,当您说 8,000 个不匹配时,您如何确定有 8,000 个不匹配?这只是分组总数的差异吗?另外,您是否担心发布的图片未获批准,或者相反?

在这里列出表格的列可能会有所帮助,因为我不知道您需要哪些信息来理解手头的问题。

编辑:提供了以下查询,其中列出了计数以及计数不同的那些 product_id。这里没什么太难的。如果这不能满足您的需求,请告诉我。你只需要加入你已经真正拥有的东西,然后选择那些计数不相等的行。

select Published.product_id,Published_Count,Media_Count
from (
    select product_id, count(*) as Published_Count
    from published p
    join published_set ps on ps.id = p.media_set_id
    group by ps.product_id
) Published

join (
    select product_id,count(*) as Media_Count
    from media
    where [status] = 'APPROVED'
    group by product_id
) Media
on Published.product_id = Media.product_id
where Published_Count <> Media_Count

【讨论】:

  • 我从两个表中提取了一个特定类别的计数,其中大约有 12,000 种产品。我使用 Excel 按产品 id 比较两个表之间的图像计数,例如此表包含产品 #12 的三张图片,但另一个表包含产品 #12 的五张图片。在该类别中,有 8,000 个产品在两个表格之间的图像不匹配。
  • 我认为发布查询会给出相关的列。但是,如果您认为它会有所帮助,这里是信息。 Media- ID PRODUCT_ID、TYPE、VENDOR_ID、STATUS、Modified_Date、Modified_By、assign_date、assigned_to Published_Set - ID、Product_id、Name Published - ID、Media_set_id、Name、Position、server_path、width、height
  • 我希望我的输出看起来像这样... PRODUCT_ID, MEDIA_COUNT, PUBLISHED_COUNT; 90012578, 2, 8, 85413256, 1, 3, 25698741, 3, 1,
猜你喜欢
  • 1970-01-01
  • 2019-07-27
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2013-01-12
相关资源
最近更新 更多