Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Яндекс практикум, помогите решить задание, выводит всё правильно но ему не нравиться.

Mihali444 Знаток (259), открыт 4 дня назад
(На 3-ем скрине, код из предыдущего задания)
Дополнен 4 дня назад
Код:
import sqlite3

con = sqlite3.connect('db.sqlite')
cur = con.cursor()

results = cur.execute('''
SELECT ic.title, c.slug, ic.price
FROM ice_cream ic
JOIN categories c ON ic.category_id = c.id
WHERE ic.price IN (
SELECT MAX(price)
FROM ice_cream
GROUP BY category_id
)
ORDER BY ic.price DESC;
''')

for result in results:
print(result)

con.close()
1 ответ
Вячеслав Рожнев Профи (772) 4 дня назад
Во первых условие не верно
 WHERE ic.price IN (  
SELECT MAX(price)
FROM ice_cream
GROUP BY category_id
)
Представьте если у вас есть экзотические мороженые по цене 1000р и 500р и обычные по цене 500р и 300р. Тогда в результат попадет экзотическое мороженое по 500р. хотя оно не самое дорогое в категории
Mihali444Знаток (259) 4 дня назад
По-моему, у меня тоже самое написано
Mihali444 Знаток (259) Я понял, это вы просто кусок кода с ошибкой указали
Mihali444Знаток (259) 4 дня назад
Здесь всё правильно, так как нужно найти самое дорогое мороженное для каждой категории, а не самое дорогое в базе
Вячеслав Рожнев Профи (772) Mihali444, вы не правы. Посмотрите пример: //sqlize.online/s/r9
Похожие вопросы