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

Задача из SQL яндекс практикум.

Данил Гурин Знаток (413), на голосовании 1 год назад
Посчитайте, сколько раз заказывали хот-дог «Карибский Потоп» в феврале. Вам понадобятся поле date и поле с названием хот-дога (name_hotdog).
Мой код: SELECT SUM(quantity)
FROM hotdog
WHERE date>='2022-02-01'
AND name_hotdog = 'Карибский Потоп'
Выводит полученный результат не совпадает с ожидаемым. Что не так?
Голосование за лучший ответ
Драгомир Бутулисов Оракул (87070) 1 год назад
Какой тип поля у quantity?
Какой ожидается результат и какой выходит?
Сколько строк в таблице hotdog?
ЪАр Гуру (4978) 1 год назад
Ваш запрос SQL выглядит правильным, но есть возможность, что проблема может быть связана с типом данных поля "date". Если поле "date" имеет тип данных "varchar" или "text", то сравнение с датой в формате '2022-02-01' может быть некорректным.

Попробуйте преобразовать поле "date" в тип данных "date" или использовать функцию преобразования типов, такую как `CONVERT()`, чтобы выполнить правильное сравнение:

```sql
SELECT SUM(quantity)
FROM hotdog
WHERE CONVERT(date, date, 103) >= '2022-02-01'
AND name_hotdog = 'Карибский Потоп'
```

В этом примере `CONVERT(date, date, 103)` преобразует значение поля "date" в тип данных "date" соответствующим образом, чтобы обеспечить корректное сравнение с датой '2022-02-01'. Обратите внимание, что формат 'YYYY-MM-DD' используется для даты в SQL. Измените формат, если ваша база данных использует другой формат даты.

Если это не решит проблему, убедитесь, что данные в поле "name_hotdog" точно совпадают с искомым значением 'Карибский Потоп'. Дополнительно, проверьте, что данные в поле "quantity" являются числовыми значениями, чтобы корректно выполнить операцию SUM.

Если проблема продолжается, необходимо более подробное расследование специфицированной ситуации и деталей вашей базы данных.

если помог https://www.donationalerts.com/r/rxf360
Настя Знаток (278) 1 год назад
Тут соль в том, что не спрашивают количество купленных хотдогов, а сколько раз заказывали:
SELECT COUNT(*)
FROM hotdog
WHERE extract(month from date) = 2
AND name_hotdog = 'Карибский Потоп';
Екатерина Фадеева Ученик (121) 1 год назад
SELECT COUNT(quantity)
FROM hotdog
WHERE extract(month from date) = 2
AND name_hotdog = 'Карибский Потоп';
Даниил Всесвятский Ученик (102) 1 год назад
Сам прохожу этот курс.
Правильный ответ выглядит так:

SELECT COUNT(name_hotdog)
FROM hotdog
WHERE EXTRACT('month' FROM date) = 2
AND name_hotdog = 'Карибский Потоп'
Taxim Знаток (284) 1 год назад
SELECT COUNT (name_hotdog)
FROM hotdog
WHERE name_hotdog = 'Карибский Потоп' AND EXTRACT (MONTH FROM date) = 2
Ирина Чернова Ученик (106) 3 месяца назад
SELECT COUNT (quantity)
FROM hotdog
WHERE DATE_TRUNC ('month', date) = '2022.02.01'
AND name_hotdog = 'Карибский Потоп'
Похожие вопросы