我正在尝试为以下
创建SQL语句我想要完成的是一个只显示仅销售A产品的ID的输出。因此,ID 5546将被排除,因为他们已售出B产品。谢谢!
+------------+---------+
| | |
+------------+---------+
| Dealercode | Product |
| 5546 | A |
| 5546 | B |
| 2214 | A |
| 3654 | A |
| | |
| Output | |
| Dealercode | Product |
| 2214 | A |
| 3654 | A |
+------------+---------+
答案 0 :(得分:2)
这几乎是一个基本的聚合查询,但有一个转折:
select dealercode, max(product) as product
from table t
group by dealercode
having count(distinct product) = 1;
如果只有一种产品,则max(product)
将成为该产品。 having
条款仅为每位经销商保证一种产品(假设product
永远不会NULL
)。
如果您正在学习SQL,则应该学习group by
和having
。这些是该语言的基本部分。
编辑:
啊,"只卖了A产品" (我想我读过#34;只卖了一个产品")。然后使用:select dealercode, max(product) as product
from table t
group by dealercode
having min(product) = max(product) and min(product) = 'A';