Меня попросили:
"Выведите следующую последовательность столбцов для каждого растения, которое цветет только в один тип погоды.
- WEATHER_TYPE
- PLANT_NAME "
Схема
РАСТЕНИЯ (название таблицы)
PLANT_NAME, строка, название завода. Это первичный ключ.
PLANT_SPECIES, жало, вид растения.
SEED_DATE, дата, дата посева семян.
ПОГОДА (название таблицы)
PLANT_SPECIES, строка, вид растения.
WEATHER_TYPE, string, тип погоды, в которой цветет растение.
Я написал скрипт ниже и проверил его на примере ввода и добился желаемого результата. Я не знаю, считается ли это «печатным» результатом.
В поисках понимания того, что я мог пропустить. Как я могу сделать этот скрипт «более эффективным» и / или «лучше» и / или «более надежным»?
SELECT WEATHER.WEATHER_TYPE, a.PLANT_NAME
FROM (SELECT b.PLANT_NAME, b.PLANT_SPECIES
FROM (SELECT PLANTS.PLANT_NAME, PLANTS.PLANT_SPECIES, PLANTS.SEED_DATE, WEATHER.WEATHER_TYPE
FROM PLANTS JOIN WEATHER
ON PLANTS.PLANT_SPECIES = WEATHER.PLANT_SPECIES) b
GROUP BY b.PLANT_NAME, b.PLANT_SPECIES
HAVING count(*) = 1) a JOIN WEATHER
ON a.PLANT_SPECIES = WEATHER.PLANT_SPECIES
Ожидаю следующий результат:
Пример вывода
Sunny Marchantia1
Sunny Marchantia2
Я достиг ожидаемого результата в окне SQL Server Management Studio, но не уверен, является ли это «напечатанным» результатом, который ищут вопросы.