名为fruit的表具有属性“ID”,“Fruit name”和“Basket No”:
|ID | Fruit Name | Basket No| |1 |Apple |1 | |2 |Banana |2 | |3 |Orange |1 | |1 |Apple |2 | |2 |Banana |3 | |3 |Orange |2 | |4 |Mango |2 | |5 |Grapes |1 | |1 |Apple |3 |我无法回答这些问题。 有人可以帮我解决以下问题:
问题1 :找到有2个以上水果的篮子编号。
问题2 :找到包含橙色的购物篮编号 问题3 :找出多个篮子里的水果 我不知道为什么人们会投票并关闭这些问题。
答案 0 :(得分:4)
SELECT basket_no
FROM baskets
GROUP BY basket_no
HAVING COUNT(*) > 2
问题2:找到包含橙色的篮子编号。
SELECT DISTINCT basket_no
FROM baskets
WHERE fruit_name = 'Orange'
问题3:找出多个篮子里的水果。
SELECT fruit_name
FROM baskets
GROUP BY fruit_name
HAVING COUNT(*) > 1
答案 1 :(得分:0)
虽然@Mureinik的答案是正确的并且应该是接受的答案,但我建议对问题3进行以下扩展(这似乎旨在抓住不知不觉):
问题3:找出多个篮子中存在的水果。例如,如果篮子2中有两个芒果,芒果不符合此要求,不应在结果中给出。我有以下代码将此考虑在内:
select Name
from
(
select BasketId,
Name,
count(id) [Fruit Of This Type Per Basket]
from Fruit
group by BasketId, Name
) as SubQuery
group by Name
having count(1) > 1
这是sql server sql,不确定子查询符合标准的是什么?