当前位置: 首页 > 面试题库 >

包含多个JOINS和GROUP BY CLAUSE的查询中的COUNT

岳英锐
2023-03-14
问题内容

我正在处理包含3个表的数据库:

  1. 公司名单
  2. 他们出售的产品表
  3. 他们在每个日期提供的价格表

我在php中进行这样的查询,以生成在特定日期提供特定产品类型最低价格的公司列表。

SELECT
  a.name AS company,
  c.id,
  MIN(c.price) AS apy
FROM `companies` a
JOIN `company_products` b ON b.company_id = a.id
JOIN `product_prices` c ON c.product_id = b.id
WHERE
  b.type = "%s"
  AND c.date = "%s"
GROUP BY a.id
ORDER BY c.price ASC
LIMIT %d, %d

这为我获取了我需要的数据,但是为了在PHP中实现寻呼机,我需要知道总共有多少家公司提供该产品。LIMIT表示我只看到前几个…

我尝试将SELECT子句更改为SELECT COUNT(a.id)或SELECT
COUNT(DISTINCT(a.id)),但这些似乎都不给我我想要的东西。我尝试在我的计数查询中删除GROUP BY和ORDER
BY,但这也不起作用。有任何想法吗?


问题答案:

在我看来,您应该GROUP BY a.id, c.id-按组进行分组a.id仅意味着通常c.id每个s有几个s
a.id,而您只是得到其中一个“随机的”。这似乎是基本正确性的问题。一旦您解决了该问题,则初始的SELECT COUNT(*) FROMetc等绝对应为您提供以下查询将返回的行数,因此您可以相应地准备您的寻呼机。



 类似资料:
  • 问题内容: 使用表i以及date_entered和code字段,我编写了一个查询以列出代码=‘12A’的每一年的计数。 这将产生: 我想在结果集中包括Cnt变量的总和。我知道如何使用单独的查询来找到总和,但是我想在原始查询中计算总和。 问题答案: 在该子句之后添加到查询中,您将获得一个额外的行,其中包含您的最终总数的NULL年。

  • 我有一些问题与WordPress和WP_Query。我想让帖子按meta_query和/或类别过滤,但我有以下问题:第一种类型的帖子有一个名为“类型”的自定义字段,必须用“练习”来填充,帖子必须在一个名为“级别”的类别中(这将在之前设置)。第二类帖子只有名为“类型”的自定义字段,必须用“测试”来填充。 我不知道如何把这两个条件凑在一起。正因为如此,我试图将它分成两个查询,然后合并它,就像这样: 这

  • 我想用JPA编写以下查询,以检索按和分组的指令的计数。我知道以下SQL可以工作: 我想从这个查询中获取结果,并将其映射到一个新的对象调用: 问题所在

  • 问题内容: 使用实体框架返回人名列表,其中人名包含字符串数组中的文本。 比方说: 和查询 这将编译并运行,但是该过程实际上是从数据库中调用所有记录,然后对返回的数据执行我的where子句。这是有道理的。 有没有一种方法可以重写查询,以便在SQL中生成where子句? 问题答案: 我假设dataContext.People是来自的,并且不涉及实现的指令,例如或。 答案在这里:http : //www

  • 我有一个Spring Boot应用程序。在其中,我有一个SQL查询,需要创建一个子查询,内部将该子查询的结果与另一个表连接,然后从该内连接的结果中进行选择。但是很明显,JPA不允许您在OF子句中使用子查询(我假设既不使用JPQL也不使用Criteria API)。有没有办法绕过这个? 我考虑过将子查询的结果存储在一个临时实体中(理想情况下不创建可持久化到DB的表),然后从存储在这些实体中的数据中进

  • 问题内容: 我需要执行django查询,以检查字段是否包含列表中的所有值。该列表的长度将有所不同 例 问题答案: 对于python 3