SQL:如何在表中同时使用分组和条件?

标签 sql postgresql

我有一个具有这样结构的表:

<表类=“s-表”> <标题> id 产品 公司 <正文> 1 表 一个 2 表 B 3 表 C 4 椅子 一个 5 椅子 B 6 沙发 一个 7 沙发 C

我需要查找公司同时包含 A 和 B 的所有产品。在上面的示例中,这些产品为 tablechair .

我设法编写了一个查询,该查询将返回包含多个公司的产品:

SELECT product FROM table_name
GROUP BY product HAVING COUNT(*) > 1
order by COUNT(*) desc;

但我无法仅考虑某些公司而不仅仅是它们的数量来做出选择。 如果有任何帮助,我将不胜感激!

最佳答案

  SELECT product
    FROM table_name
   WHERE company IN ('A', 'B')
GROUP BY product
  HAVING COUNT(DISTINCT company) = 2
ORDER BY COUNT(*) desc;

关于SQL:如何在表中同时使用分组和条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77714862/

相关文章:

mysql - 单个查询中的多个 MySQL 计数

php - 如何在 CASE 语句中写多个条件?

mysql - 如何使用 Rails 或原始 SQL 使用自己的时区查询多个时区的记录

function - 需要有关 Postgres 触发器和功能的帮助

mysql - SQL 是否保证连接的结果将组合在一起?

MySQL 解决方法,它们不能一起工作 - ROWNUM

MySql - 查询如何编写嵌套条件?

sql - 通过 PostgreSQL 中的 View 更新多对一关系中的两个表

sql - 我怎样才能用sql获得增量计数器?

phpmyadmin Designer Tab 不同颜色的含义?