gpt4 book ai didi

mysql - 如何解决这个特定的数据库SQL查询

转载 作者:行者123 更新时间:2023-11-29 10:30:09 25 4
gpt4 key购买 nike

规格:

植物学家在两个表格中维护有关植物及其最喜欢的天气状况的数据:
植物和天气。编写查询以打印每个的名称和天气类型
仅在一种天气中开花的植物。输出顺序无关紧要。

模式格式:

PLANT(NAME,SPECIES,SEED_DATE)

WEATHER(PLANT_SPECIES,TYPE)


属性说明:

名称: (String) Description of the plant.

种类: (String) The species of the plant.

植物种类: (String) The species of the plant.

类型: (String) The type of weather in which the plant will bloom.

种子日期: (Date) The date the seed was planted.

输出格式:

结果应包含开花的每种植物的名称和天气类型
示例中仅显示以下格式的一种天气。





给定输入和输出的说明:

苔藓植物仅在晴天时才会开花。因此结果包含
名为Marchantia1和Marchantia2的植物,其物种为苔藓植物。
在晴朗多雨的天气里,植物种类裸子植物会盛开。所以结果不
包含任何种类为裸子植物的植物名称。
(请注意,天气表可能有重复的条目)

注意:不,这不是作业! -_-这是面试中的一个问题(已结束)。我真的很想解决这个问题。但是可能有很多测试用例,我的简单sql查询无法解决。所以我需要你的帮助我是SQL查询的新手。

最佳答案

只需定期加入以获取植物名称及其天气类型。
要仅列出仅在一种气候下发生的植物,请在where子句中列出
子查询以排除不需要显示的物种。

select distinct plt.NAME, wht.TYPE
from PLANT plt
join WEATHER wht on wht.PLANT_SPECIES = plt.SPECIES
where 1 = (select count(distinct(wht0.TYPE)) from
WEATHER wht0
where wht0.PLANT_SPECIES = plt.SPECIES)


该解决方案将(通常)适用于任何DBMS,例如,如果使用TSQL而不是MySQL,则可以利用RANK,CTE,ROWNUMBER等更复杂的工具

SQL Fiddle

关于mysql - 如何解决这个特定的数据库SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47555789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com